ホームページ >バックエンド開発 >PHPチュートリアル >ob_start および php の他の関数による標準出力をインターセプトする方法、phpob_start_PHP チュートリアル
最近PHPを使ってcliでソフトウェアを開発していたのですが、このような問題に遭遇しました。 PHP スクリプトから出力を収集したかったので、ob_start と ob_end_flush という 2 つの関数を使用しました。これらの関数は出力を収集するだけでなく、コンソール インターフェイスにも出力します。私が聞きたいのは、PHP がコンソールに情報を出力しないようにする方法があるかどうかです。原則として、このソフトウェアではコンソールに何も出力できません。
php-cli 自体は Web サーバーとは独立してスクリプトを実行します。現在取得しているデータをどのように取得したのかわかりません。 cli 経由で php プログラムを実行して返された値を取得できない場合は、ob_get_clean() を使用できます
キャッシュされたコンテンツを取得した後、キャッシュ領域をクリアして、表示インターフェイスを表示しないという前述の効果を実現します
もちろん、バッファーの内容を取得してクリアし(コンソールに出力しないように制御)、その内容を処理のためにWebサーバーにフラッシュすることもできます
上記の方法で完成です。この一連の機能は以前から使っていたのですが、長い間使っていなかったので忘れていました。
私たちが現在取り組んでいるのは、PHP ベースのマルチプロセス HTTP 動的サーバーです。卒論は単なる実験品であり、実用性はありません。
php-cgiプログラムの実行結果は標準入出力なので、出力結果をインターセプトするには標準入出力を取得するしかないはずですが、やり方がわかりません
。以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。