• 締切済み

stdinからの処理でメール情報を取得できない

よろしくおねがいします。 空メールを送って 以下のコードでメールからの標準入力をうけて みました。 $log = file_get_contents('php://stdin'); をコメントアウトして //$gdata="ddddddd"; コメントアウトしないと、正常に書き出せるのですが、 $gdata="ddddddd"; をコメントアウトして、 $log = file_get_contents('php://stdin'); をコメントアウトしないと、動作しないようです。 環境はお名前.COMのVPSです。 CentOS5.2 & PHP5 です。 <?php $log = file_get_contents('php://stdin'); //$gdata="ddddddd"; $ffp2="ggg.txt"; $fh=fopen($ffp2,"w"); fwrite($fh,$log); fclose($fh); ?>

みんなの回答

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.1

一つ前ので#2の回答をしたものです。 エラーログも出てないと言う事なので、ぶっちゃけ 原因が分かりません。 この手の奴は、ブラウザで表示するのとは訳が違いデバッグがしにくいのは、とてもよく分かります。 なので、この質問で提示されてるように ファイルに書き出すと言うのは よくやる手です。 またまた思いつきで申し訳ないのですが、 「$log = file_get_contents('php://stdin');」の 前に ob_start() して、ob_get_contents() をファイルに書き出してみては どうでしょう? file_get_contents() で コケるなら、「@file_get_contents()」としてみるとか。 @(アットマーク)の事を、エラー回避としか思っていませんでしたが、「エラー制御演算子」という正式名称があったようで… なんか、思い付きばかりのいい加減な回答ですみません。 前回の奴の理由は、file_get_contents() のほうが file() より最近の関数なもんで、ちょっと試してみて欲しかっただけでした。 まぁ、PHP5の時点で ↑の理由は ないだろうな~とは思っていたのですが、一応。。