【PHP】質問スレッドpart17【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/05/17 17:14ID:AT+bUkag・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ等>>2-4
抜けているものがあったら補足願います
0266nobodyさん
04/05/25 16:50ID:???0267nobodyさん
04/05/25 17:00ID:???count() を使うなら、せめて配列をリファレンスで渡してください。
でないとものすごく遅くなるよ。
0269nobodyさん
04/05/25 18:08ID:???Win 2000・PHP 4.3.4・apache 2.0.48 環境で
Benchmark for 'foreach'
38.63%
Benchmark for 'for'
25.19%
Benchmark for 'while--list-each'
36.09%
0270nobodyさん
04/05/25 18:17ID:???たまにエラーがでてサーバーが落ちてしまいます。
直す方法あるでしょうか。
0271nobodyさん
04/05/25 18:25ID:???チェックボックスにチェックが入ったもの全てを削除というのがなかなか出来ません。
log.txtの中身
118,ベッカム
119,シェフチェンコ
120,ロナウド
del_info.phpの中
print "<form method=\"POST\" action=\"delete.php\" target=\"index\">";
print "<table border=\"0\">\n";
for ($i = 0; $i < count($id); $i++)
{
print "<tr><td>\n";
print "<input type=\"checkbox\" name=\"check[]\" value=\"$id[$i]\"></input>";
print "</td><td>$id[$i]\n";
print "</td><td>$name[$i]\n";
print "</td></tr>";
}
print "<tr><td><input type=\"submit\" name=\"line_del\" value=\"削除\"></td>";
print "</table></form>\n";
delete.phpにどんなソースを書けばよいでしょうか?
0272nobodyさん
04/05/25 18:29ID:???その際にチェックが入っているレコードを書き出さないようにする
0273nobodyさん
04/05/25 18:34ID:???0274nobodyさん
04/05/25 18:35ID:???0276269
04/05/25 18:41ID:???foreach≒whileでやっぱりforが一番速い
あとstr_repeatにしてもほぼ変わらないかむしろ速い
>>239の環境が知りたい
>>270
apacheにしようぜ
0277nobodyさん
04/05/25 18:46ID:???hello worldとか簡単なやつでもエラー出ます。
エラーメッセージは↓これ。anhttpdのバージョンは1.42kです。
zend timeout window httpd.exe -アプリケーションエラー
"0x001554f4"の命令が"0x001554f4"のメモリを参照しました。
メモリが"read"になることはできませんでした。
>>276
やっぱapacheですかねぇ・・・
0278240
04/05/25 18:49ID:???>240 みてよ
loop数を5000にして幾度か試すと
for > foreach ≒whileになったよ。こっちでも。
最初のは、php5なんで無視してくれ。
でだ、カポコンの言うことは当てにならんということでFA
0279240
04/05/25 18:50ID:???>269 みてよ
でした。すまん。
0280240
04/05/25 18:51ID:???> 263 見てよ
だった。吊ってくる
0281nobodyさん
04/05/25 18:57ID:???function hoge(){
$this->aa = array("(´д`)");
}
}
$hoge = new hoge();
echo $hoge->aa[0]; <-と言う呼び方は邪道なんでしょうか?
呼び出しようのメソッドを作るか、$aa = $hoge->aa;とやってから呼ぶべきなのでしょうか?
0282269
04/05/25 18:57ID:???そうするとPHP5はforeachが劇的に変わったのか
それ以外で何らかが変わってそういう結果が出たわけだ
そこが気になったので
0283nobodyさん
04/05/25 18:59ID:???イキロ
0284277
04/05/25 19:27ID:???感謝
0286nobodyさん
04/05/25 19:46ID:???後々の事考えたらそう覚えた方がいいね
0287nobodyさん
04/05/25 19:49ID:???設計を見直してみるとか
0288nobodyさん
04/05/25 19:55ID:???0289nobodyさん
04/05/25 20:07ID:???中途半端なんだよ
0290nobodyさん
04/05/25 20:24ID:???C言語って書いてるあたり素人だろ>カポコン
それと、定期的に現れるベンチ厨ウザイから、ベンチスレでも立ててくれ
0292267
04/05/25 21:01ID:???ループの外でも、計測範囲に入っているなら影響するべ。
もしあなたがでっかい配列を count() に渡しているなら、
今度リファレンスで渡してみ。すごく速くなるから。
0295nobodyさん
04/05/25 21:05ID:RFog7Rovそこで、自分の書き込みが自分のPCに保存されるようにするにはどうしたらよいでしょうか?
PHPかPerlを使ってプログラムを書かないといけないでしょうか?
P3, 733MHz, 256MB, win 2k pro, IE6です。何方かよろしくお願いします。
0297267
04/05/25 21:08ID:???ループの外でも、計測範囲に入っているなら影響するでしょ。
もしあなたがでっかい配列を count() に渡しているなら、
今度リファレンスで渡してごらん。すごく速くなるから。
0299nobodyさん
04/05/25 21:18ID:???0300295
04/05/25 21:20ID:RFog7Rov自分の書き込みが鯖にのこらないんです。
それで、鯖に残らないなら、自分のPCに保存するということをしたいな、
という意味で書きました。これでお分かりになりました?
0302295
04/05/25 21:29ID:RFog7Rov温泉?って表示されるかな?
0304295
04/05/25 21:31ID:RFog7Rovさっきは間違えました。ありが�dこのサイト教えてあげる。
ttp://www.france.co.jp/bunko/yougo/yougo_y.html
0306295
04/05/25 21:34ID:RFog7Rov0307nobodyさん
04/05/25 21:37ID:???貴方がそのサイトのスクリプトを弄れるなら、
そういう機能(鯖にログ保存)を実装する、
または実装されたアプリを使う。サイトの作りに
手が出せないのなら、自前でProxyっぽいのを実装する
手もあるが、現実として貴方の取れる方法は、301の示した方法かな。
つまり「書き込む内容を事前にどこかに手動で残しておく」
書き込みの内容がどうも的を射てないように思えるので、自分で何とか
するんじゃなくて、既にできているものを探して利用するという方向で。
0308nobodyさん
04/05/25 21:38ID:ulnj232eホームページに入れたいんです
0309nobodyさん
04/05/25 21:40ID:???居付いてしまったらウゼェし。
0310nobodyさん
04/05/25 21:43ID:ulnj232eどのphpも付加機能ばっかいらん
0311nobodyさん
04/05/25 21:45ID:???0312nobodyさん
04/05/25 21:47ID:ulnj232e近所の人としゃべって事も無いのでは…
それよりphp教えて
0314nobodyさん
04/05/25 21:53ID:???マニュアルにもUserContributedNotesにも載ってなくて、ほんとの所はどうなんだろう?
試せばすぐ分かるんだろうけどマンドくせ。
ソースだと関係する所はこれくらいかな。
ext/standart/array.c
PHP_FUNCTION(count) -> php_count_recursive(zval *array, long mode TSRMLS_DC)
中ではポインタで渡してるだけの気がするんだが。
0315nobodyさん
04/05/25 21:54ID:GONN/rJfmb_encode_mimeheader
ですが、日本語が10文字くらいになると末尾が文字化けしてしまいます。
「こんにちはこんにち(B」
みたいな感じです。
それよりも短い文字列だと文字化けしません。
phpのバージョンは4.3.6です。
よろしくおながいします
0316nobodyさん
04/05/25 21:58ID:???TEST←定数
EOM;
EOM内で定数を使うことはできるのでしょうか?
0319nobodyさん
04/05/25 22:29ID:GONN/rJf315です。
デフォルトのままです。
コードはSJISで書いているんですが、mb_encode_mimeheaderするまえに
mb_convert_encodingでJISに変換しています。
0320カポコン
04/05/25 22:48ID:???つーかwin2000でphp語るなよw。
0323カポコン
04/05/25 23:15ID:???いくら2chでも貴様の数倍偉い人が決めた言葉よ?
好みでいいだろ。それとオツムの良さはまた別物。
あとベンチマークすんのはいいけど、
>>237-239みたいにちゃんとした結果出せないと説得力ねーよ。
なんだよ%,%ってTimerクラス使ってるのにそりゃーねーだろ。
所詮2chのウンコ厨だな、そんなんだからいつまで経っても
3流の領域抜け出せねんだよ。あと試すんならunix系入れて試せ。
素 人 は お ま え 。
0325nobodyさん
04/05/25 23:37ID:???0326nobodyさん
04/05/26 00:19ID:???0327nobodyさん
04/05/26 00:21ID:VdU4NQovGDを詳しく扱った本はありませんでしょうか?
本の中の1つのコンテンツとして扱っていても結構ですので教えて下さい。
あと、GDを説明しているサイトもできればお願いします…。
0330nobodyさん
04/05/26 02:12ID:???0332nobodyさん
04/05/26 03:31ID:???PHPの書籍でGDの詳しいのねぇ。心当たりはないね。
GDは、今は独自パッチがあたったのがPHPに添付されてるけど
ImageMagickと同様、元々外部のグラフィックライブラリだから
PHP以外での使用方法にも探す範囲を広げた方が良いよ。
0333nobodyさん
04/05/26 03:33ID:???0334nobodyさん
04/05/26 03:48ID:???0336nobodyさん
04/05/26 04:16ID:???プログラミング言語C 或いは C が妥当か。
あとbenchmarkだが他人様のはアテにせず自分でとろうな。
>>326
アホ共がこぞって使う共用のコテハンってところじゃないの?
>>327
無い。
0337nobodyさん
04/05/26 08:15ID:5W/UUmVu調べたらphp.iniのほうでデフォルトのエンコーディングがISO-8859-1になってました。
これをEUC-JPに変えて、mb_encode_mimeheaderするまえに文字コードをEUCに変換
させたら、うまくいきましたm(_ _)m
0338nobodyさん
04/05/26 09:18ID:s4ZFO6Pq0339nobodyさん
04/05/26 09:28ID:???0342337
04/05/26 12:24ID:???えっほんとに?
たとえばこういうことがしたいんですが。
class Foo
{
var $_row;
function Foo(&$row) {
$this->row =& $_row;
foreach (array_keys($row) as $key) {
eval("function $key() { return \$this->_row['$key']; }");
}
}
}
$data = array('a' => 1, 'b' => 2);
$foo = new Foo($data);
echo $foo->a();
結果
Fatal error: Call to undefined function: a()
evalにコンテキスト(バインディング)が指定できないから、こういう
のは無理じゃないんですか?
0343nobodyさん
04/05/26 12:29ID:???0344nobodyさん
04/05/26 12:38ID:???情報は小出しにして分かりにくく、そして肝心なことは書かない。
0346nobodyさん
04/05/26 12:55ID:???0348nobodyさん
04/05/26 13:18ID:???eval("
function ".$var."()
{
echo 'hello!';
}
a();
");
a();
0350338
04/05/26 13:35ID:???きました。でもコードが読みにくいですね。ありがとうございました。
0353nobodyさん
04/05/26 17:05ID:???さらに自演で自分を持ち上げる糞コテでFA?
0354nobodyさん
04/05/26 17:05ID:???pwdみたいな。
0355nobodyさん
04/05/26 17:13ID:???getcwd()
でできた・・・ゴメンナサイ。ほんとにわかんなかったんだよぉ・・・
0356nobodyさん
04/05/26 17:13ID:fjwOYoWghttp://jp2.php.net/manual/ja/ref.dir.php
0357nobodyさん
04/05/26 18:48ID:???0358nobodyさん
04/05/26 18:52ID:???0359nobodyさん
04/05/26 19:00ID:???カポコンがいないときにはそんなやつはいないのに。
そのこころは?
0360nobodyさん
04/05/26 19:08ID:???いないときにわざわざ話題を振って賞賛するスレじゃねえだろ。
0361nobodyさん
04/05/26 19:28ID:???count(&$arr2) にしたら for が一番速くなった。
ついでにこんなの
$arr4 = array_map(create_function('&$item', 'static $str4 = \'\'; $str4 .= \'>\'; return $str4.$item;'), $arr4);
もやってみたが、これがforに次いで速かった。
しかし、
$arr4 = array_map(create_function('&$item', 'global $leftarrow; static $str4 = \'\'; $str4 .= $leftarrow; return $str4.$item;'), $arr4);
にしたら一番遅くなった。うーん、微妙。
0362nobodyさん
04/05/26 20:11ID:???0363nobodyさん
04/05/26 20:24ID:???>362
やめろというだけじゃなく、かわりのネタを提供汁
0365nobodyさん
04/05/26 20:31ID:???0366カポコン
04/05/26 20:40ID:???■ このスレッドは過去ログ倉庫に格納されています