2012-03-26 11 views
0

私はPHPでreadlineを使ってstdinから読み込んでいますが、ファイルを実行するとすべての入力が返されます。それは私が私のサーバー上でこれを実行すると、私は期待するように、それが動作PHPのechos readline on stdin

<file php file | otherprogram 

が、私は私のラップトップ(SuhosinパッチとPHP 5.3.10(CLI))上でそれを実行すると:私はそれが好きで使用していますスクリプトの実際の出力とともにstdinをstdoutに出力します。私は出力をotherprogramにパイプしているので、これはかなり迷惑です。

出力バッファリングで出力をキャッチしようとしましたが、動作しませんでした。

これを引き起こしている原因は何ですか?

+0

あなたがここで何を望んでいるか分かりませんが、[this](http://php.net/manual/en/wrappers.php.php)は役に立ちます – haltabush

+0

私はstdinから組み込みのreadline ()関数を使用していますが、stdinはstdoutに出力されます –

答えて

1

私はこの質問が少し古いと知っていますが、私は同じ問題を抱えています。私は、phpのreadline()関数が受け取る入力を一度に1文字ずつエコーバックするので、意図した出力の前に「出力」されてしまいます。そうでなければ、bashシェルは入力時に入力をエコーし​​ています。

出力バッファリング関数(ob_startおよびob_end_clean)を使用してPHPの出力を出力できなかったため、後者のケースだと思っています。

+0

>出力バッファリング関数(ob_startおよびob_end_clean)を使用してPHPの出力をキャッチできませんでした。 同じ結果を出して同じことを試みました。 –