こんにちは、ムーシアさん!
rainbird があなたに短いメッセージを送りました:
バックグラウンドで実行するデーモンをたくさん書きましたが、使い方はとても簡単ですが、コンテンツをパイプ経由で渡したいのですが、それを実現する方法がわかりません。 echo "aaaa" |a .php、a.php に似ています。 echo の内容を取得する方法について、何かアドバイスはありますか?
今日メッセージを受け取りましたので、解決策を共有したいと思います。実際、シェルの | は実際には前の標準を表しており、出力は後者の標準入力として機能します。実装はパイプを通じて実装されますが、
PHP コードを記述するときに基礎となる操作を知る必要はありません。標準入力として直接読み取ることができます:
以下は実験的なコードです:
コードをコピーします コードは次のとおりです:
$fp = fopen("php:/ /stdin", "r");
$s = '';
while (!feof($fp))
{
$s .= fgets($fp, 128);
}
var_dump($s);
fclose($ fp);
テストメソッド:
コードは次のとおりです: ls -lh | php_read_pipe.phpも与えますより単純なコード: file_get_contents ( 'php://stdin')
転送するデータが多い場合、一般的に、4K ごとに 1 回転送されます。転送が完了するまで。
file_get_contents('php://stdin') を使用するだけでは不可能な場合があります。もしそうなら、私はいつでも待っています。
別々に処理すると、ある程度の量を読んでからその一部を処理することができます。次に、メモリの一部を解放します。