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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/07/16 07:12ID:KvHeypq/
・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


抜けているものがあったら補足願います
0388nobodyさん04/07/26 02:54ID:sMxRgzIj
教えてください。

ファイルをアップロードするスクリプトを組んでいるのですが、ファイルのサイズがある程度大きくなるとうまくいきません。
1) 651バイトの画像ファイルは正常にアップロードできました。
2) テスト用に文字列"1234567890"で埋めた 161,876バイトのテキストファイルは以下の様になります。
   type : text/plain
   size : 321880
   error: 0

実際にUPされたファイルを見てみると
先頭に1,260バイト分 "1234567890"が入っていて次に

-----------------------------7d420b560c66
Content-Disposition: form-data; name="upfile"; filename="クライアント側のファイル名"
Content-Type: text/plain\r\n\r\n

その後最後まで"1234567890"が入っているようです。
(その後の部分は多いのでざっと目視しただけですが、少なくともodでダンプ取った範囲では 1164520=321,872まではデータが埋まってました)

環境は RedhatLinux9.0 PHP-4.2.2 Apache2.0.40 で
file_uploadsはOn
upload_max_filesizeは1M
に設定してあります。



同じスクリプトを別サーバにて動作させると正常に作動するのでどうにも原因がわからないです。
怪しそうな所をお教えください。

ちなみに動作するサーバでも似たような構成で動かしています。
RedhatLinux9.0 PHP-4.2.2-17(SRPMからMB_STRINGをONにして自分でコンパイルした)+ Apache2.0.40 です。
038938804/07/26 04:29ID:sMxRgzIj
追記です。

試にうまく動作している方のサーバから自分でビルドしたPHPのパッケージを動作していないサーバにFTPしてインストールしてみました。
php.iniもコピーしました。

結果は以前と同じでサイズが倍ほどに膨れます。

PHPの問題ではないみたいですね。
訳がわからなくなってきました。。
0390nobodyさん04/07/26 05:49ID:IOiIX+Fr
自分や他の人が持っているdocomo携帯からでは問題なく見られる掲示板が
vodafoneからだと見られないという報告を受けました。文字コードとうで
何か気をつけるべきことがあるのでしょうか?詳しい方教えてください。
0391nobodyさん04/07/26 05:49ID:???
お約束のApache(PHPのではない)のPOSTデータの限度設定の確認はした?
POSTメソッドを使ったアップロードでFAQ的なところだけど。
0392nobodyさん04/07/26 07:40ID:???
>>387
変数のスーパーグローバル化というのは global で宣言したり $GLOBALS を
使えばできると思うのだが・・・。
0393nobodyさん04/07/26 09:23ID:zfZRDkJ9
phpのなかで、fopen/fwriteでファイル書き出しをしたいのですが、通常だったら、
ファイルのオーナーがapacheの実行オーナー(nobodyさん)になってしまいます。
これを、自分のアカウントがオーナーにしたいです。
また、ファイルの内容は変更することがあるので、その時には、ファイルのオーナーを
nobody さんに戻せないといけません。

よろしくおながいします。
0394nobodyさん04/07/26 09:38ID:???
>>390
auから見てる人はあっち。vodafoneから見てる人はこっち。
とか携帯の仕様を元に振り分けるとか
0395nobodyさん04/07/26 11:18ID:BnaAbQE9
""の中で、
変数$foo['hoge'][$bar['huga']]を表記するにはどうすればいいですか?

単に、${foo['hoge'][$bar['huga']]}では

Parse error: parse error, expecting `'}''
となります。
0396nobodyさん04/07/26 11:20ID:???
>>395
{$foo['hoge'][$bar['huga']]}

${hoge}じゃなくて{$hoge}を使えばいい。
0397nobodyさん04/07/26 11:23ID:BnaAbQE9
>>396
ありがとうございます。解決しました。
{$hoge[]}と${hoge[]}の文法的な違いってなんですか?
0398nobodyさん04/07/26 11:32ID:zfZRDkJ9
>>394
vodafoneのキャッシュ制限にひっかかってない?
非パケ端末は1ページ6kbyte以下ですよ。
0399nobodyさん04/07/26 11:32ID:???
>>397
マニュアルを読みましょう。「変数のパース」以下を読んでみて下さい。
http://www.php.net/manual/ja/language.types.string.php
0400nobodyさん04/07/26 11:57ID:???
>>392
まあ、一々宣言すればいいんだけど、$PHP_SELF位は
スーパーグローバルに登録された方が楽かな・・・とは思うもんで。
それともこういう書き方は(・A ・)イクナイ?
0401nobodyさん04/07/26 13:06ID:U4MCK2zg
質問させてください!

1:タイムスタンプ名のディレクトリをumask設定してから作成
(他のサイトでumaskしたらいいと書かれていました)
$oldmask = umask(0);
$dir = mkdir($timestamp,0777);
umask($oldmask);

2:そのディレクトリに画像をアップ
3:$name = $dir."/1.jpg";

これでechoで$nameを出力させるときちんとjpg名が出力されるのですが、
is_file($name)等でファイルの存在を調べると、falseが返ってきます。
これはなぜなのでしょうか?知ってる方お願いします。
0402nobodyさん04/07/26 13:20ID:???
ディレクトリは出来たけど、画像はアップロードできてないだけじゃねーの( ´-`)
アップロード処理の例外処理とかちゃんとしてる?
0403nobodyさん04/07/26 13:24ID:???
>>401
$dirに何が入ってるか見てみ
0404nobodyさん04/07/26 14:17ID:???
[PHP-users 22798]
Windowsではできてると言っているのに、、、
「Macでは試験したことが無いですが、Windows限定でよければ。」ってアフォか
0405nobodyさん04/07/26 14:24ID:???
>>404
そういうおもしろいのは↓へどうぞ
http://pc5.2ch.net/test/read.cgi/php/1090322290/
0406nobodyさん04/07/26 14:29ID:???
誤爆スマソ
040740104/07/26 14:42ID:U4MCK2zg
>>402-403

$nameを出力すると「123456789/1.jpg」みたいになります。

<img src=$name>
はきちんと画像が表示されます。画像はアップされています。FTPでも画像の存在を確認できます。
でもis_file($name)はfalseが返ってくるんです。

is_file("123456789/1.jpg") で確認するとTRUEなのですが、is_file($name)はFALSEなんです。
0408nobodyさん04/07/26 15:07ID:???
フルパスで
040940104/07/26 15:26ID:???
>>408
フルパスでも無理でした。
mkdirで作成したディレクトリにあるファイルをis_fileで調べた場合FALSEを返すのでしょうか?
is_dir($dir)もFALSEでした。
※$dirにはmkdirで作成したディレクトリ名(フルパス)
0410nobodyさん04/07/26 15:32ID:???
file_existsでも同じ?
0411nobodyさん04/07/26 15:34ID:4tJVtMce
質問です。
htmlspecialcharsを使うと♥等の文字実体参照ができなくなってしまうのですが、
対処方法はあるのでしょうか。
&amp;を全て&に変換してから表示させれば実現できることを確認しましたが
それだとhtmlspecialcharsの意味が無くなるし・・
よろしくおながいします。
041240104/07/26 15:42ID:???
>>410
はい・・・file_existsもfilesizeも、mkdirで作成したディレクトリを含めその中にあるファイルの情報を
得ようとするとFALSEなんです。

if ( file_exists ( $name ) ) //FALSE

print "<img src='".$name."'>";//アップした画像が表示される

041338804/07/26 15:42ID:sMxRgzIj
>391
アドバイス有難うございます。

ApacheのPOSTデータの限度設定とはPHPのマニュアルサイトのUser Contributedにのっかっている
LimitRequestBodyのことでしょうか?

そちらを2Mで試してみていますがうまくいかないです。
0414nobodyさん04/07/26 15:42ID:???
独自のモジュール作ればヨシ!
0415nobodyさん04/07/26 15:45ID:???
>>401
ディレクトリと画像ファイルのパーミッションどうなってる?
041640104/07/26 16:14ID:???
>>415
ディレクトリは777、その中の画像は644です
0417nobodyさん04/07/26 16:27ID:???
>>413
そうそれ(うろ覚えでスマンね)。
現象が違う(倍に膨れる/該当するエラーが出てない)ので
違うとは思ったが、やっぱり関係ないね。

入ってるデータ見てるとWebクライアント自体がデータをマルチパート化して
その両方の形式とも送ってるみたい。使ってるのはIE?
別のWebクラインアントで試すか、送信データをキャプチャして見てみるのが良いかも。
0418nobodyさん04/07/26 16:41ID:???
>>401
やはりポカミスな気がする
is_file($name)の$name当たりを見直してみると良いかも
0419nobodyさん04/07/26 17:02ID:???
俺もポカミスのような気がするなぁ…。
0420nobodyさん04/07/26 17:13ID:???
>>418-419
自分もそんな気がしてるのですが、藁にもすがる思いで質問しました。
もう一度じっくり見直してみます。有難うございました。
0421nobodyさん04/07/26 17:21ID:???
>>409
401の$dir = mkdir($timestamp,0777);を実行して
$dirに作成したディレクトリ名が入るのか?
http://www.php.net/manual/ja/function.mkdir.php
0422nobodyさん04/07/26 17:54ID:???
成功した場合に TRUE 、失敗した場合に FALSE を返します。

0423nobodyさん04/07/26 18:09ID:???
しかし、

>>412 の、これがわからんな

if ( file_exists ( $name ) ) //FALSE
print "<img src='".$name."'>";//アップした画像が表示される
0424nobodyさん04/07/26 18:15ID:???
>if ( file_exists ( $name ) ) //FALSE
と
>print "<img src='".$name."'>";//アップした画像が表示される
の参照ディレクトリが違うだけの話じゃないの?
0425nobodyさん04/07/26 18:57ID:???
データ(data.cgi)の一番上の行だけ
読み取るにはどうすればよいでしょうか?
0426nobodyさん04/07/26 19:07ID:???
>>425
今は どうやってるんだい?
0427nobodyさん04/07/26 19:11ID:???
$msg = file(data.cgi);
これで呼び出すと全部が変数に入るから
一番上のだけ読み込みたいと・・・
0428nobodyさん04/07/26 19:12ID:???
変数じゃなくて配列な
$msg[0]
0429nobodyさん04/07/26 19:17ID:???
data.cgiの中身が
「田中さん
山下さん
吉田さん」
だとすると
$msg = file(data.cgi);で

$msg[0] が田中さん
$msg[1] が山下さん
$msg[2] が吉田さん
となるのですか?
0430nobodyさん04/07/26 19:17ID:???
>>407
>is_file("123456789/1.jpg") で確認するとTRUEなのですが、is_file($name)はFALSEなんです。
↓は試した?
if ( "123456789/1.jpg" != $name ) echo '当然falseだ(゚Д゚ )ゴルァ!!';

>>411
適当に書いたので合ってるか分からんが、
$contents=preg_replace('/&amp;([0-9a-z]+;)/i' ,'&$1', $contents);
等で、実体参照と思われる部分のみさらに置換し直す。
0431nobodyさん04/07/26 19:18ID:???
>>429
print_r($msg);とか試せ
0432nobodyさん04/07/26 19:24ID:???
質問ナンデツガ
送信ボタンをクリックしたらAに1が
代入されるとかできますか?
0433nobodyさん04/07/26 19:24ID:???
>>429
お前は一回マニュアルを読め
0434nobodyさん04/07/26 19:30ID:???
>>432
お前は一回、、、何から読ませればいいですか?
0435nobodyさん04/07/26 19:31ID:???
国語の教科書とか
0436nobodyさん04/07/26 19:42ID:???
$msg = implode(",",array($name,$comment,$time,$host));
$com = file($data);
$fp = fopen($data,"w");
fputs($fp, "$msg\n");
fclose($fp);


fputs(): supplied argument is not a valid stream resource
043743604/07/26 19:46ID:???
何が悪いんだよぬるぽーーーーーー!!!
043843604/07/26 19:48ID:???
ちなみに$dataのパーミッションは666でつ
ヘルプキボンヌ
0439nobodyさん04/07/26 19:50ID:???
var_dump($msg)で中身みれよ
0440nobodyさん04/07/26 19:53ID:???
ちゃんと中身ありますた;;
string(77) "やまもと,おはようございます,2004/07/26 19:52:51,YahooBB************.bbtec.net"
0441nobodyさん04/07/26 20:10ID:???
$data とか $fp をvar_dump した方がいいと思う。
044243604/07/26 20:12ID:???
bool(false)

ナンダコリャ
0443nobodyさん04/07/26 20:33ID:???
>>442
$fpか? まあ要はファイル開けないぞゴルァ!ってことだな。
if(!$fp=fopen($data,"w")){
echo "cannot open!";
}else{
fputs($fp, "$msg\n");
}
に変えて実行してみれ。
044443604/07/26 20:43ID:???
開けませんですた_| ̄|○
0445nobodyさん04/07/26 20:44ID:???
いや。必要なのは
if(!file_exists($data)){
  echo "file not found."
}
だと思う。
typoしてないかどうかよーくソース眺めてみ。
044643604/07/26 20:46ID:???
まじで皆さんごめんなさい_| ̄|○
$dataではなく$logですた;;
0447nobodyさん04/07/26 21:19ID:???
>>446
おう、それと$fp=fopen($data,"w")だと$logの中身は常に最新の$msg一行だけになるから
$fp=fopen($data,"a");でオープンしとけ。
0448nobodyさん04/07/26 21:24ID:???
>>447
あり><
どうりで上書きされるわけだ・・・
044938804/07/26 21:32ID:sMxRgzIj
>417
クライアントはIE6とネスケ7.1で試してます。

動いている方のサーバは
 Redhat9.0を米国のスタッフが英語環境で(おそらくインターネットサーバとして)インストールして
 その後、私がPHPをMB_STRING付&不要なオプションを削除してリビルド、
 httpd.conf内の不要モジュール等の削除+バーチャルホストの設定を行っています。¥

 ついでに手持ちのもう2台のサーバ(自分でRedhat9.0を日本語ベースでサーバインストール&PHPをMB_STRINGコンパイル
 &apacheを上記サーバとほぼ同じ設定をしたもので試しましたがそちらでも動作しています。

対し動いて居ないサーバは
 SAKURAインターネットのサーバでApache、PHPともインストールされたままのものを使用(1台はPHPのパッケージを昨日入れ替えました)
 10Mプレミアムと10Mスタンダードの2台です。

普通に自力でやった物が動いていて、SAKURAのほうのみ動かない状況です。

これからTCPDUMPで内容解析してみます。
0450nobodyさん04/07/26 21:44ID:???
つーか、煽りでもなんでもなくて純粋に不思議なんだが、
マニュアルちゃんと読んでない関数をよく使おうと思うな…
特に戻り値把握して無いって普通におかしいだろ?
その関数をそこで使おうと思った理由がスゲー気になる
045138804/07/26 21:57ID:sMxRgzIj
サイズが倍になるサーバでtcpdumpしてみました。
概算ですが送信サイズは元のファイルのサイズです。
またhttpヘッダー部のダンプを見てみたところ
Content-Length:.162212  (PHP側では size : 321880と表示される)
の文字があったので送信されるHTTPヘッダーは正しいみたいです。
(まぁ同じクライアントで別サーバで動作するのでクライアント側から送信されるデータは正しいっぽいですね)

もう訳がわからなくなったので一度ApacheをSRPMからビルドしてみます。
045238804/07/26 22:19ID:sMxRgzIj
httpd.confだけをApacheインストール標準にもどしてヴァーチャルホストの設定だけを元のものに戻してみた所正しくアップされました。
httpd.confのどこかに問題がありそうです。
これから箇所を特定してみます。
スレ違いになってしまいましたが箇所がわかったら書き込みますね。
0453nobodyさん04/07/26 22:37ID:???
>>450
入門書かなんかで見たサンプルを丸飲みして覚えてるからこういう事態になるんじゃない?
045438804/07/26 22:45ID:sMxRgzIj
場所の特定できました。

AddType application/x-httpd-php .php

これを入れるとサイズが倍になります。。 う〜ん

たしかに自分で設定したほうには入れていなかったです。
これ設定しなくて良かったんでしたっけ?


ともあれ原因がこんな所にあるとは。。 奥が深いです。

アドバイスどうもありがとうございました。
0455nobodyさん04/07/26 22:52ID:???
>>388では生データの概要全部が読めないんだけど、
アップロード元のhtmlで「enctype="multipart/form-data" 」
は指定されてるよね?
0456nobodyさん04/07/26 22:59ID:???
>>454
記述はいる筈だけど、それはRHL9(のRPMで入れた)なら
/etc/httpd/conf.d/php.confに書かれてるんじゃないかな。
.htaccessにも書けるし、設定は「上書き」であって
コンフリクトはしないと思うけど。
0457nobodyさん04/07/26 23:10ID:ehBSQM9L
393への回答キボンヌ
おながいします
0458Imo ◆.jC7ANgFY. 04/07/26 23:14ID:???
chmodで606にすれば解決。
所有者を自分にしたければCGI/perlから作ればよし。
045938804/07/26 23:19ID:sMxRgzIj
>455
もちろんマルチパートで送信しています。
手持ちのサーバの大部分はうまく動作しているのです。
最近引き継いだSAKURAインターネットのサーバのみダメな状態だったのです。
送信パケットでは正常なパケットを送信しつつ、ApacheからPHPにデータが渡る時点で倍に増えているような状況でした。

>454
php.conf にはAddTypeは書かれて居ないです。
入っていたのはLoadMduleとLimit関連、DirectoryIndexの3点だけでした。

grepしてみたのですが他にphpのAddTypeをしている箇所は無いようです。
何度か試しましたが[AddType application/x-httpd-php .php]を入れてhttpd再起動でサイズが倍に、
コメントアウトして再起動で正常なサイズでアップされます。

Apache,phpのバージョンの組み合わせの問題でしょうかね?
0460nobodyさん04/07/26 23:42ID:???
<俺メモ>
RedHat9にPHP4とGD入れるときのconfigureで、--with-gd --with-jpeg-dir=/usr/lib/したとき、
「configure: error: libjpeg.(a|so) not found.」ってエラー出る場合は、
「find /usr/lib -name libjpeg*」しても「libjpeg.so」が見つからないはず。
OSインストール時にパッケージの開発ツールで「Xソフトウェア開発」を入れれば解決。
</俺メモ>
0461nobodyさん04/07/26 23:53ID:???
すみません、どなたかPHP5でnamespaceがサポートされなかった理由をご存知ないでしょうか。
RC1まではあってRC2で削除されたようですが。
よろしくお願いします。

#interfaceよりnamespaceの方が欲しかった・・・
0462nobodyさん04/07/27 01:09ID:???
>>461
コードが汚くなるからだったりして
0463nobodyさん04/07/27 01:45ID:???
速度とトレードしたのかもしれないね
0464nobodyさん04/07/27 02:02ID:???
Zeevタンの鶴の一声で決まったらしいけど、なんでやろね?
0465nobodyさん04/07/27 02:12ID:???
プログラム超初心者なので教えて下さい。

あ,データA,データB,
い,データA,データB,
う,データA,データB,

としているデータを?id=あ
で一行目の列のみ検索して一致した場合その行のデータを取得して配列?に入れて表示したいんですけど教えて下さい。
適当に書いてみたんだけど↓(つд⊂)エーン全然ちがうよね??

<?PHP
$file_data = file("data.csv");
foreach ($file_data as $temp_line){
preg_match('/$id/',$temp_line,$parts);}
{
$parts = explode(",",$temp_line,4);
$name1[] = $parts[0];
$name2[] = $parts[1];
$recipe[] = $parts[2];
$comment[] = $parts[3];
}
?>
0466nobodyさん04/07/27 04:03ID:???
>>465
全然ダメ
そのものズバリ書くのも何なのでヒントを

preg_match の部分が変だし、preg_match は if 文じゃない。
foreach のループの中身もおかしい。

超初心者なら、まずプログラムの書き方を覚えないと
どっかで配布されているスクリプトを拾ってきて、それを読むのがいいかも
0467465です04/07/27 05:13ID:???
>>466
丁寧な解説ありがとうございます。
やはり基礎からやった方がいいのですね(ノД`)シクシク
頑張ってPHP覚えます。
あと、超初心者向けのPHP入門みたいなホームページをご存知でしたら教えて下さい。
0468nobodyさん04/07/27 08:47ID:???
検  索  し  ろ  や
0469nobodyさん04/07/27 09:05ID:???
>やはり基礎からやった方がいいのですね(ノД`)シクシク
コイツ最悪だ
0470nobodyさん04/07/27 09:41ID:???
いちいち初歩的な質問に答えているから問題なのでは?
スルーしとけば伸びてこないし何れ滅びる
0471軟式PHP04/07/27 09:56ID:???
>>467
何考えてる〜お前何言ってる〜♪あほの塊〜何考えてる♪
あっほだな〜♪
0472nobodyさん04/07/27 10:26ID:???
>>468-471はこのスレで一生懸命ピーエイチピーを勉強中の若手ザル
0473nobodyさん04/07/27 10:42ID:???
>>472
俺は?
0474nobodyさん04/07/27 10:52ID:???
おはようございます。

includeで他ファイルを読み込むとき、
perlで書かれたCGIを呼び出すことは出来ますか?
試してみるとエラーが出たのですが、なにぶん初心者のため、
構文が誤っていた可能性もあって‥。

<? include("./cgi/bbs/bbs.cgi"); ?>

と記入したのですが

failed to open stream: Permission denied
for inclusion (include_path='.:/usr/local/lib/php')
の2つのエラーが出ました。
phpのパスが出ていたのでphpからperlは呼び出せないのかと‥
0475nobodyさん04/07/27 10:54ID:???
ネタはやめてください
0476nobodyさん04/07/27 10:57ID:???
ワラタ
0477nobodyさん04/07/27 11:06ID:???
まず、おはようございます。 がおもしろかったです。
0478nobodyさん04/07/27 11:09ID:???
<?php
$id = $_GET['id'];
$file_data = file("data.csv");
foreach ($file_data as $temp_line){
if(preg_match("/$id/",$temp_line)){
$parts = explode(",",$temp_line);
$name1[] = $parts[0];
$name2[] = $parts[1];
$recipe[] = $parts[2];
$comment[] = $parts[3];
}
}
var_dump ($name1,$name2,$recipe,$comment);
?>
できたー俺もPHP勉強中!
0479軟式PHP04/07/27 13:02ID:???
<?php
$qvId = $_GET['id'];
$fp = fopen("data.csv","r") or die("(;´A`)");
while( $strData = fgetcsv( $fp, 1000, "," ) ){
if( $strData[0] == $qvId )
{
list($name1,$name2,$recipe,$comment) = $strData;
break;
}
}
fclose($fp);
echo $name1.$name2.$recipe.$comment;
?>
0480nobodyさん04/07/27 14:19ID:???
PHP4.3.7を使ってます。セキュリティ問題についてはとりあえず置いておいて、

form から submit したときに文字化けします。
form のあるファイルは SJIS ですが、恐らく文字コードの問題ではないです。

文字化けというより、\記号(0x5C)もしくはそれを含む漢字の0x5C部分 がだぶって取得される、という現象です。
たとえばフォームに "\100" と入力すると、$HTTP_POST_VARS['xxx'] は "\\100" となりますし、
"ソノタ" を入力すると "ソ\ノタ" と取得されます("ソ" は SJIS で 0x83,0x5C)。

どこに問題があるかわかりますか?
048148004/07/27 14:20ID:uLhfG1jO
sageちゃった。
ageさせて。
0482軟式PHP04/07/27 14:23ID:???
>>480
magic_quotes_gpcでしょう。
048348004/07/27 14:27ID:???
>>482
おーなおったー!ありがとー!
ぶちゅ
0484nobodyさん04/07/27 14:32ID:???
>>474
URLを指定した、Webサーバ経由のincludeなら可能。
つまりcgiの出力結果のinclude。リモートファイルの
直接的なincludeになるので、セキュリティには気をつけること。
#リモートの出力が常に信頼できるものなら良いが。
048548404/07/27 14:34ID:???
>>474
ああ、そこのサーバだと駄目かもしれんね。
<httpストリームのinclude
0486Imo ◆.jC7ANgFY. 04/07/27 14:38ID:???
>>478
ちょっと簡略化すればこんな感じかな。
$name1==$idの時という判断なら下のようなプログラムがいいかも。
# チェックせずベタで書いたから修正必要かもしれない

$id = preg_quote($_GET['id']); $k = ',([^\\,\\n]*)';
preg_match_all("/^($id)$k$k$k.*\$/m", file_get_contents('./data.csv'), $match, PREG_PATTERN_ORDER);
list($parts, $name1, $name2, $recipe, $comment) = $match;
var_dump($name1,$name2,$recipe,$comment);
0487軟式PHP04/07/27 14:39ID:???
セーフモードのヤカン。・゚・(ノ∀`)・゚・。
0488Imo ◆.jC7ANgFY. 04/07/27 14:42ID:???
>>474
こんなことしてみればいかが。# localhostについては検索すること。
include('http://localhost/〜');
でも出力だけしたいのであれば
echo file_get_contents('http://localhost/〜');
のほうがオススメ。
■ このスレッドは過去ログ倉庫に格納されています