ホームページ > バックエンド開発 > PHPチュートリアル > php exec() の特定のシェル結果が間違っているのは、php の grep がバイナリ ストリームではなくテキスト ストリームのみを処理できるためです。

php exec() の特定のシェル結果が間違っているのは、php の grep がバイナリ ストリームではなくテキスト ストリームのみを処理できるためです。

WBOY
リリース: 2016-06-13 12:52:03
オリジナル
833 人が閲覧しました

php exec() の特定のシェル結果が間違っているのは、php の grep がバイナリ ストリームではなくテキスト ストリームのみを処理できるためです。
Linux コマンドラインでテストする場合は問題ありません。しかし、php の exec には非常に奇妙な問題があります。

結果エラー:

エラー メッセージは次のとおりです: cat: write error: Broken Pipe


多くの努力と多くの情報を確認した後、ついに解決しました。

grep に -a オプションを追加すると問題ありません

grep -a オプションの意味: バイナリ ファイルをテキストであるかのように処理します。これは --binary-files=text オプション

と同等です。

cat であるはずのこのファイルの内容にはバイナリ ストリームが含まれているため、grep がそれを認識できません



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