ホームページ  >  記事  >  バックエンド開発  >  PHP はシェルパイプによって送信されたコンテンツを読み取ります_PHP チュートリアル

PHP はシェルパイプによって送信されたコンテンツを読み取ります_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:40:06965ブラウズ

こんにちは、ムーシアさん!
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 Rainbird はまた、より単純なコード:
file_get _contents( 'php://stdin')
転送するデータが多い場合、一般的には 4K ごとに 1 回転送されます。
転送が完了するまで。
file_get_contents('php://stdin') を使用するだけでは不可能な場合があります。もしそうなら、私はいつでも待っています。
別々に処理すると、ある程度の量を読み取ってから、その一部を処理することができます。次に、メモリの一部を解放します。
たとえば、すべてのファイルをループしたいとします。こんな感じで扱えます
find / | php php php_read_pipe.php
具体的な状況に応じて分析していきます。



http://www.bkjia.com/PHPjc/321414.html

www.bkjia.com

tru​​e

技術記事こんにちは、ムーシアさん! Rainbird から短いメッセージが届きました。バックグラウンドで実行するデーモンをたくさん書きました。とても使いやすいですが、コンテンツをパイプ経由で渡したいのですが、その方法がわかりません。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。