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

spb mobile shell phpはシェルパイプによって送信されたコンテンツを読み取ります

WBOY
リリース: 2016-07-29 08:41:58
オリジナル
1064 人が閲覧しました

こんにちは、ムーシアさん!
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') を使用するだけでは不可能な場合があります。もしそうなら、私はいつでも待っています。
別々に処理すると、ある程度の量を読んでからその一部を処理することができます。次に、メモリの一部を解放します。

たとえば、すべてのファイルをループしたいとします。こんな感じで扱えます
find / | php php php_read_pipe.php
具体的な状況に応じて分析していきます。
上記は、spb mobile shell php がシェル パイプラインによって送信されたコンテンツをどのように読み取るかを紹介しました。これは、PHP チュートリアルに興味のある友人に役立つことを願っています。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート