web-dev-qa-db-ja.com

PHPでSTDOUTを使用する方法

私はtxtファイルからストリームを読み取るプロジェクトに実行しているので、CLIでは次のように書きます:

cat texte.txt|php index.php

私のindex.phpストリームを読み込むファイル:

$handle = fopen ("php://stdin","r");

今、私は$result処理ファイルの結果が含まれており、STDOUTで出力したいのですが、マニュアルで調べましたが、使用方法がわかりません。使用例を教えてください。

32
Malloc

さて、 STDINSTDOUT の使用法の別の例を挙げましょう。

PHPでは、次の2つのイディオムを使用します。

 $input = fgets(STDIN);

 fwrite(STDOUT, $output);

コマンドラインからこれらを利用する場合:

 cat "input.txt"  |  php script.php   >  "output.txt"

 php script.php  < input.txt  > output.txt

 echo "input..."  |  php script.php   |  sort  |  tee  output.txt

それがこれらすべてです。パイピングまたはパイピングアウト。また、入力部分はSTDINに表示されますが、出力はSTDOUTに移動する必要があります。ストリームを渡らないでください!

51
mario

定数STDINSTDOUTはすでにリソースであるため、必要なことは

fwrite(STDOUT, 'foo');

http://php.net/manual/en/wrappers.php を参照してください

php:// stdin、php:// stdout、およびphp:// stderrは、PHPプロセスの対応する入力または出力ストリームへの直接アクセスを許可します。ストリームは重複するファイル記述子を参照するため、 php:// stdinを開いて後で閉じると、記述子のコピーのみを閉じます。STDINによって参照される実際のストリームは影響を受けません。PHPは、 PHP 5.2.1。これらのラッパーを使用してストリームを手動で開くのではなく、定数STDIN、STDOUT、およびSTDERRを使用することをお勧めします。

18
Gordon

これはあなたのために働くはずです

$out = fopen('php://output', 'w'); //output handler
fputs($out, "your output string.\n"); //writing output operation
fclose($out); //closing handler
16
user336883