限定しりとり

よろしくおねがいします。

空メールを送って
以下のコードでメールからの標準入力をうけて
みました。

$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);

?>

A 回答 (1件)

一つ前ので#2の回答をしたものです。



エラーログも出てないと言う事なので、ぶっちゃけ 原因が分かりません。
この手の奴は、ブラウザで表示するのとは訳が違いデバッグがしにくいのは、とてもよく分かります。
なので、この質問で提示されてるように ファイルに書き出すと言うのは よくやる手です。

またまた思いつきで申し訳ないのですが、 「$log = file_get_contents('php://stdin');」の 前に ob_start() して、ob_get_contents() をファイルに書き出してみては どうでしょう?

file_get_contents() で コケるなら、「@file_get_contents()」としてみるとか。

@(アットマーク)の事を、エラー回避としか思っていませんでしたが、「エラー制御演算子」という正式名称があったようで…

なんか、思い付きばかりのいい加減な回答ですみません。

前回の奴の理由は、file_get_contents() のほうが file() より最近の関数なもんで、ちょっと試してみて欲しかっただけでした。
まぁ、PHP5の時点で ↑の理由は ないだろうな~とは思っていたのですが、一応。。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!