ホームページ  >  記事  >  バックエンド開発  >  fread は popen 値を読み取ることができませんが、コマンド ラインで正常に実行されます。

fread は popen 値を読み取ることができませんが、コマンド ラインで正常に実行されます。

WBOY
WBOYオリジナル
2016-06-23 14:13:371857ブラウズ

freadCannot read the Popen value

$output = '';$pipe = popen($somecommand, 'r');	while(!feof($pipe)){ $output .= fread($pipe, 1024);}


コマンドラインで $somecommand を実行すると正常に表示されるのですが、上記のコードを実行すると値が取得できません。誰か助けていただければ幸いです。

ディスカッションへの返信 (解決策)

次のことを確認する必要があります:
1. $somecommand はスレッドではなくプロセスです
2. $somecommand は標準出力に書き込まれます

この種のアプリケーションは、テスト環境。公式環境がセキュリティ上の理由でそのような機能を無効にしたらゲームオーバーではないでしょうか?

確認する必要があります:
1. $somecommand はプロセスであり、スレッドではありません
2. $somecommand は標準出力に書き込まれます

この種のアプリケーションはテスト環境で実行できます。公式環境がセキュリティ上の理由でそのような機能を無効にしたらゲームオーバーではないでしょうか?
長い間 CSDN にアクセスしていませんでしたが、しつこいモデレーターが直接質問に答えてくれました。以前、私は安全性と効率性の問題を考慮して、呼び出しをソケットに切り替えたいと考えていましたが、ここで Nagging に質問したいことがあります。呼び出しの値を取得できるように、PHP で同様のアプリケーションを実行するためのより良いソリューションはありますか?ありがとうございます

$output = '';$pipe = popen($somecommand, 'r');	while(!feof($pipe)){ $output .= fread($pipe, 1024);}


コマンドラインで $somecommand を実行すると正常に表示されるのですが、上記のコードを実行すると値が取得できません。どなたか助けていただければ幸いです。
この「2>&1」をコマンドに追加します: http://blog.csdn.net/kangear/article/details/9141481
私が使用したコマンドは dd ですが、これにはあなたと同じ問題があります。それを追加しても大丈夫です。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。