ホームページ >バックエンド開発 >PHPチュートリアル >PHP内蔵Webサーバーを探る(2) PHPコンソール出力コンソール機能のカスタマイズ

PHP内蔵Webサーバーを探る(2) PHPコンソール出力コンソール機能のカスタマイズ

WBOY
WBOYオリジナル
2016-07-29 09:02:01861ブラウズ

私たちはAPPのサーバー側を開発しています。APPと共同でデバッグするとき、通常、URLリクエストとパラメータの受信をリアルタイムで追跡する必要があります。

しかし、PHP には Python や Java のような独自のコンソール出力関数はありません。Python の print() と Java の System.out.println()、PHP の echo、print、およびその他の関数は、php -findex.php を使用して直接使用できます。 cli_server が実行されている場合、シェル画面に出力できますが、cli_server が実行されている場合、デバッグ情報はシェルにのみ出力され、ブラウザには表示されません。

Du Niang で長い間検索した結果、インターネット上には PHP の組み込みサーバー cli モードに関する情報が非常に少なく、有用な情報がまったく見つかりませんでした。

PHPの公式ドキュメントを参照して、最終的にPHPの標準出力ストリームについて考えましたSTDOUT

php://outputは、printと同じ方法で出力バッファに書き込むことができる書き込み専用のデータストリームです

CLI モードで実行している場合、データが STDOUT に書き込まれている限り、データは echo や print なしですぐに SHELL クライアントに出力されます:

PHP内置Web Server探究(二)自定义PHP控制台输出console函数

したがって、入力をカプセル化するカスタム関数を作成できます。 sdtout 標準出力ストリームからのデータは、いつでもシェルに表示したいスケジュール情報を出力することと同じです:

<span><span>1</span><span>/*</span><span>2</span><span>* cli模式或者内置server打印调试信息,而不在浏览器输出
</span><span>3</span><span>* param fixed $data    参数可以是除了对象以外的所有数据类型,比如:字符串,数组,jason等
</span><span>4</span><span>*/</span><span>5</span><span>function</span> console(<span>$data</span><span>){
</span><span>6</span><span>$stdout</span> = <span>fopen</span>('php://stdout', 'w'<span>);
</span><span>7</span><span>fwrite</span>(<span>$stdout</span>,json_encode(<span>$data</span>)."\n");   <span>//</span><span>为了打印出来的格式更加清晰,把所有数据都格式化成Json字符串</span><span>8</span><span>fclose</span>(<span>$stdout</span><span>);
</span><span>9</span> }</span>

組み込みサーバーの各リクエストの後に現在のデバッグ情報を出力する必要がある場合: 呼び出しconsole() を直接実行します 例:

受け取ったすべての GET または POST パラメータを出力します:

console($_GET);

console($_POST); 文字列を出力します:

console("hello php console debug ");

PHP内置Web Server探究(二)自定义PHP控制台输出console函数

もうPythonやJavaのコンソール出力を羨む必要はありません、これからはPHPにもコンソール出力機能があります

以上、PHP組み込みWebサーバーの探求(2)PHPコンソール出力コンソール機能のカスタマイズについての内容を含めて紹介しましたが、PHPチュートリアルに興味のある友人の参考になれば幸いです。

PHP内置Web Server探究(二)自定义PHP控制台输出console函数

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