トップページ⇒php
1001コメント320KB

【PHP】質問スレッドpart17【php】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/05/17 17:14ID:AT+bUkag
・PHP全般の質問スレです。
・新規質問の方は上げてください。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:???
結局カポコンのスクリプトは言う程速くなかったってことでFA?
0267nobodyさん04/05/25 17:00ID:???
ベンチとってる方々へ。
count() を使うなら、せめて配列をリファレンスで渡してください。
でないとものすごく遅くなるよ。
0268nobodyさん04/05/25 17:04ID:???
>>267
ループの外なら変わらんだろ
基本がなってないね
0269nobodyさん04/05/25 18:08ID:???
>>237-238と同じソースにて
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:???
win2000 php4.3.4 anhttpdでPHPを動かしてるんですが
たまにエラーがでてサーバーが落ちてしまいます。
直す方法あるでしょうか。
0271nobodyさん04/05/25 18:25ID:???
テキストファイルから読み込んだデータをphpで一覧表示しているのですが、
チェックボックスにチェックが入ったもの全てを削除というのがなかなか出来ません。
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:???
log.txt全体を読み込んで一件ずつlog.txtへ書き出す
その際にチェックが入っているレコードを書き出さないようにする
0273nobodyさん04/05/25 18:34ID:???
早速の返信ありがとうございますが、出来れば削除したいんです
0274nobodyさん04/05/25 18:35ID:???
ああ、なるほど。そのやり方で削除できますね。
0275nobodyさん04/05/25 18:37ID:???
>>270
Use the source, Luke!
anhttpdは知らん。バージョンも書いてないし。
027626904/05/25 18:41ID:???
色々コード変えてやってみたけど同条件下ではうちの環境だと
foreach≒whileでやっぱりforが一番速い
あとstr_repeatにしてもほぼ変わらないかむしろ速い
>>239の環境が知りたい

>>270
apacheにしようぜ
0277nobodyさん04/05/25 18:46ID:???
>>275
hello worldとか簡単なやつでもエラー出ます。
エラーメッセージは↓これ。anhttpdのバージョンは1.42kです。

zend timeout window httpd.exe -アプリケーションエラー

"0x001554f4"の命令が"0x001554f4"のメモリを参照しました。
メモリが"read"になることはできませんでした。

>>276
やっぱapacheですかねぇ・・・
027824004/05/25 18:49ID:???
>276
>240 みてよ

loop数を5000にして幾度か試すと
for > foreach ≒whileになったよ。こっちでも。
最初のは、php5なんで無視してくれ。

でだ、カポコンの言うことは当てにならんということでFA
027924004/05/25 18:50ID:???
違った
>269 みてよ

でした。すまん。
028024004/05/25 18:51ID:???
だめだ、
> 263 見てよ

だった。吊ってくる
0281nobodyさん04/05/25 18:57ID:???
class hoge{
function hoge(){
$this->aa = array("(´д`)");
}
}
$hoge = new hoge();
echo $hoge->aa[0]; <-と言う呼び方は邪道なんでしょうか?
呼び出しようのメソッドを作るか、$aa = $hoge->aa;とやってから呼ぶべきなのでしょうか?
028226904/05/25 18:57ID:???
気悪くしないでね
そうするとPHP5はforeachが劇的に変わったのか
それ以外で何らかが変わってそういう結果が出たわけだ
そこが気になったので
0283nobodyさん04/05/25 18:59ID:???
ワロタ
イキロ
028427704/05/25 19:27ID:???
apacheいれたらサクサク動きました
感謝
0285nobodyさん04/05/25 19:32ID:???
>>281
クラス内の変数にアクセスする場合は、呼び出し用のメソッドを作って参照するのが基本だよ。
0286nobodyさん04/05/25 19:46ID:???
PHP4は完全にカプセル化できないけど
後々の事考えたらそう覚えた方がいいね
0287nobodyさん04/05/25 19:49ID:???
クラス使う側からしたら取得したい要素気にしないといけないわけだからな
設計を見直してみるとか
0288nobodyさん04/05/25 19:55ID:???
MVCで作るのが基本だよ
0289nobodyさん04/05/25 20:07ID:???
ボケるんだったら振り幅を大きくしろ
中途半端なんだよ
0290nobodyさん04/05/25 20:24ID:???
レスが多いと思ってたらカポコンの自演とベンチ厨か
C言語って書いてるあたり素人だろ>カポコン

それと、定期的に現れるベンチ厨ウザイから、ベンチスレでも立ててくれ
0291nobodyさん04/05/25 20:50ID:???
>>290
おまえが立てろ
029226704/05/25 21:01ID:???
>268
ループの外でも、計測範囲に入っているなら影響するべ。
もしあなたがでっかい配列を count() に渡しているなら、
今度リファレンスで渡してみ。すごく速くなるから。
0293nobodyさん04/05/25 21:04ID:???
>>291
ベンチ厨乙
0294nobodyさん04/05/25 21:04ID:???
>>292
標準語で話してくれませんか?
掲示板に方言使うとかキモ過ぎですよ
恥と思わないのか
0295nobodyさん04/05/25 21:05ID:RFog7Rov
php使っているサイトで、書き込んでも自分の書き込みがサイトにのこりません。
そこで、自分の書き込みが自分のPCに保存されるようにするにはどうしたらよいでしょうか?
PHPかPerlを使ってプログラムを書かないといけないでしょうか?
P3, 733MHz, 256MB, win 2k pro, IE6です。何方かよろしくお願いします。
0296nobodyさん04/05/25 21:08ID:???
>>295
(´ω`)??
029726704/05/25 21:08ID:???
>268
ループの外でも、計測範囲に入っているなら影響するでしょ。
もしあなたがでっかい配列を count() に渡しているなら、
今度リファレンスで渡してごらん。すごく速くなるから。
0298nobodyさん04/05/25 21:15ID:???
>>295
( ゚Д゚)??
0299nobodyさん04/05/25 21:18ID:???
益々盛り上がってまいりました。
030029504/05/25 21:20ID:RFog7Rov
はっきりかけば、出会い系サイトで自分の書き込みは相手にいくけど、
自分の書き込みが鯖にのこらないんです。
それで、鯖に残らないなら、自分のPCに保存するということをしたいな、
という意味で書きました。これでお分かりになりました?
0301nobodyさん04/05/25 21:22ID:???
>>300
メモ帳に書く→Ctrl+Sキーを押す。
やったね、できたね。ヒャッホウ!
030229504/05/25 21:29ID:RFog7Rov
>>300
温泉?って表示されるかな?
0303nobodyさん04/05/25 21:30ID:???
>>302
( ゚Д゚)ポカーン
030429504/05/25 21:31ID:RFog7Rov
>>301
さっきは間違えました。ありが�dこのサイト教えてあげる。
ttp://www.france.co.jp/bunko/yougo/yougo_y.html
0305nobodyさん04/05/25 21:32ID:???
>>295
こんなところにいないで出会い系に行ったほうがいいんじゃないかなぁ?

はっきり言えばもう消えろ!
030629504/05/25 21:34ID:RFog7Rov
喪前が消えろよ
0307nobodyさん04/05/25 21:37ID:???
>>300
貴方がそのサイトのスクリプトを弄れるなら、
そういう機能(鯖にログ保存)を実装する、
または実装されたアプリを使う。サイトの作りに
手が出せないのなら、自前でProxyっぽいのを実装する
手もあるが、現実として貴方の取れる方法は、301の示した方法かな。
つまり「書き込む内容を事前にどこかに手動で残しておく」

書き込みの内容がどうも的を射てないように思えるので、自分で何とか
するんじゃなくて、既にできているものを探して利用するという方向で。
0308nobodyさん04/05/25 21:38ID:ulnj232e
自己IPを表示するphpを教えてください
ホームページに入れたいんです
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教えて
0313nobodyさん04/05/25 21:52ID:???
>>312
本買えば?
0314nobodyさん04/05/25 21:53ID:???
count()にリファレンスを渡す話を初めて聞いたのでちょっと調べてみたんだけど、
マニュアルにもUserContributedNotesにも載ってなくて、ほんとの所はどうなんだろう?
試せばすぐ分かるんだろうけどマンドくせ。

ソースだと関係する所はこれくらいかな。
ext/standart/array.c
 PHP_FUNCTION(count) -> php_count_recursive(zval *array, long mode TSRMLS_DC)
中ではポインタで渡してるだけの気がするんだが。
0315nobodyさん04/05/25 21:54ID:GONN/rJf
ぐぐってみたんですが、わからなかったので....
mb_encode_mimeheader
ですが、日本語が10文字くらいになると末尾が文字化けしてしまいます。
「こんにちはこんにち(B」
みたいな感じです。
それよりも短い文字列だと文字化けしません。

phpのバージョンは4.3.6です。

よろしくおながいします
0316nobodyさん04/05/25 21:58ID:???
echo <<< EOM
TEST←定数
EOM;

EOM内で定数を使うことはできるのでしょうか?
0317nobodyさん04/05/25 22:06ID:???
>>316
できません。
0318nobodyさん04/05/25 22:22ID:???
>>315
mb_internal_encodingは?
0319nobodyさん04/05/25 22:29ID:GONN/rJf
>>318
315です。
デフォルトのままです。

コードはSJISで書いているんですが、mb_encode_mimeheaderするまえに
mb_convert_encodingでJISに変換しています。
0320カポコン04/05/25 22:48ID:???
なかなか面白かったよ。
つーかwin2000でphp語るなよw。
0321nobodyさん04/05/25 23:05ID:???
>>320
「C言語」なんていってる素人が何言ってるんだか
0322nobodyさん04/05/25 23:13ID:???
>>321
「D言語」なんて言ってる素人が何言ってるんだか
0323カポコン04/05/25 23:15ID:???
C語って言えってか?俺はそういうのは嫌なんだよ。
いくら2chでも貴様の数倍偉い人が決めた言葉よ?
好みでいいだろ。それとオツムの良さはまた別物。
あとベンチマークすんのはいいけど、
>>237-239みたいにちゃんとした結果出せないと説得力ねーよ。
なんだよ%,%ってTimerクラス使ってるのにそりゃーねーだろ。
所詮2chのウンコ厨だな、そんなんだからいつまで経っても
3流の領域抜け出せねんだよ。あと試すんならunix系入れて試せ。
 素 人 は お ま え 。
0324nobodyさん04/05/25 23:26ID:???
>>319
mb_encode_mimeheader使うのにmb_convert_encodingで変換なんかするからだろ。
0325nobodyさん04/05/25 23:37ID:???
カポコン神襲来
0326nobodyさん04/05/26 00:19ID:???
カポコンって誰?
0327nobodyさん04/05/26 00:21ID:VdU4NQov
皆さんにお聞きしたいのですが、PHPの書籍のなかで
GDを詳しく扱った本はありませんでしょうか?
本の中の1つのコンテンツとして扱っていても結構ですので教えて下さい。
あと、GDを説明しているサイトもできればお願いします…。
0328nobodyさん04/05/26 00:28ID:???
>>326
誰もかまってくれないものだからジサクジエーンで自分を誉め称えるイタいやつ
0329nobodyさん04/05/26 02:01ID:???
>>328
それはお前の見方だろーが。
0330nobodyさん04/05/26 02:12ID:???
結局、神叩きして終わりかよ。
0331nobodyさん04/05/26 02:30ID:???
>>329-330
やあ、カポコン。今夜も来たの? ( ̄ー ̄ )ノ
0332nobodyさん04/05/26 03:31ID:???
>>327
PHPの書籍でGDの詳しいのねぇ。心当たりはないね。
GDは、今は独自パッチがあたったのがPHPに添付されてるけど
ImageMagickと同様、元々外部のグラフィックライブラリだから
PHP以外での使用方法にも探す範囲を広げた方が良いよ。
0333nobodyさん04/05/26 03:33ID:???
カポコンって頭叩いた時の音?
0334nobodyさん04/05/26 03:48ID:???
空っぽだからいい音出すのね。
0335nobodyさん04/05/26 04:08ID:???
>>334
(σ^Д^)σ うまい!座布団2枚!
0336nobodyさん04/05/26 04:16ID:???
>>323
プログラミング言語C 或いは C が妥当か。
あとbenchmarkだが他人様のはアテにせず自分でとろうな。

>>326
アホ共がこぞって使う共用のコテハンってところじゃないの?

>>327
無い。
0337nobodyさん04/05/26 08:15ID:5W/UUmVu
>>324
調べたらphp.iniのほうでデフォルトのエンコーディングがISO-8859-1になってました。
これをEUC-JPに変えて、mb_encode_mimeheaderするまえに文字コードをEUCに変換
させたら、うまくいきましたm(_ _)m
0338nobodyさん04/05/26 09:18ID:s4ZFO6Pq
evalのなかで関数やメソッドの定義をしたいんだけど、PHPでは無理ですか?
0339nobodyさん04/05/26 09:28ID:???
できるよ。テストスクリプト書く手間すら惜しいのか?
0340nobodyさん04/05/26 10:16ID:???
>>336
カポコンは神。
>>337-338
あげるなよ。
0341nobodyさん04/05/26 10:22ID:???
>>1 age進行でお願いします。
034233704/05/26 12:24ID:???
>>338
えっほんとに?

たとえばこういうことがしたいんですが。

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:???
正しい質問の仕方
情報は小出しにして分かりにくく、そして肝心なことは書かない。
0345nobodyさん04/05/26 12:50ID:???
>>344
どっかでそれの長文ver見かけたな。結構おもしろかった覚えがある。
0346nobodyさん04/05/26 12:55ID:???
function $key()
0347nobodyさん04/05/26 13:11ID:???
>>346
なぜこれが動くとか思ってしまったんだろうね彼は
0348nobodyさん04/05/26 13:18ID:???
$var = "a";
eval("
function ".$var."()
{
echo 'hello!';
}
a();
");
a();
034933804/05/26 13:33ID:???
>>346,347
二重引用符が見えませんか。

>>348
グローバルなコンテキストの関数ならできるんですね。
知りませんでした。
035033804/05/26 13:35ID:???
クラス定義をまるごとevalの中に入れればできるような気がして
きました。でもコードが読みにくいですね。ありがとうございました。
0351nobodyさん04/05/26 15:46ID:???
>>337
だからmb_encode_mimeheaderそのものが変換を行えるのだから
前もって変換なんていらんって
0352nobodyさん04/05/26 16:59ID:???
>>323
>C語って言えってか?
C語って何か新しいものか?
普通に考えてC。
まぁ、エンエヌと言うような素人なんだろうなぁ
0353nobodyさん04/05/26 17:05ID:???
カポコンって、googleで仕入れた情報(大半は間違ってる)を自慢気に語って
さらに自演で自分を持ち上げる糞コテでFA?
0354nobodyさん04/05/26 17:05ID:???
現在のディレクトリを取得できないですか。

pwdみたいな。
0355nobodyさん04/05/26 17:13ID:???
自己レス

getcwd()

でできた・・・ゴメンナサイ。ほんとにわかんなかったんだよぉ・・・
0356nobodyさん04/05/26 17:13ID:fjwOYoWg
>>354
http://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:???
>>237-239
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
やめろというだけじゃなく、かわりのネタを提供汁
0364nobodyさん04/05/26 20:27ID:???
>>363
バカか?お前
ここは雑談スレじゃなくて、質問スレ。
常時ネタが必要なスレではない。
スレ違いをわきまえてほしい
0365nobodyさん04/05/26 20:31ID:???
禿同。なんかラウンジと勘違いしてる香ばしいのが居るな
0366カポコン04/05/26 20:40ID:???
僕に何か質問はあるかな?
■ このスレッドは過去ログ倉庫に格納されています