ホームページ  >  記事  >  バックエンド開発  >  PHP で ob_start およびその他の関数を使用して標準出力をインターセプトする方法

PHP で ob_start およびその他の関数を使用して標準出力をインターセプトする方法

高洛峰
高洛峰オリジナル
2017-01-03 15:23:111119ブラウズ

最近、PHP を使用して cli でソフトウェアを開発していて、このような問題に遭遇しました。 PHP スクリプトから出力を収集したかったので、ob_start と ob_end_flush という 2 つの関数を使用しました。これらの関数は出力を収集するだけでなく、コンソール インターフェイスにも出力します。私が聞きたいのは、PHP がコンソールに情報を出力しないようにする方法があるかどうかです。原則として、このソフトウェアではコンソールに何も出力できません。

php-cli 自体は、Web サーバーとは独立してスクリプトを実行します。現在取得しているデータをどのように取得したのかわかりません。 cli 経由で php プログラムを実行して返された値を取得できない場合は、ob_get_clean() を使用できます

これにより、キャッシュされたコンテンツを取得した後にキャッシュ領域がクリアされ、表示インターフェイスを表示しないという効果を実現できます

もちろん、バッファの内容を取得してクリア(コンソールに出力しないように制御)して、処理のためにWebサーバーに内容をフラッシュすることもできます

上記の方法に従って行われています。この一連の機能は以前から使っていたのですが、長い間使っていなかったので忘れていました。

私たちが現在取り組んでいるのは、PHP ベースのマルチプロセス HTTP 動的サーバーです。卒論は単なる実験品であり、実用性はありません。

php-cgiプログラムの実行結果は標準入出力なので、出力結果は標準入出力を取得することでしかインターセプトできません パイプラインも可能なはずですが、しません

上記。この記事の全内容が、皆様に気に入っていただければ幸いです。

ob_start や PHP のその他の関数による標準出力のインターセプト方法に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。

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