> php教程 > php手册 > 본문

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

WBOY
풀어 주다: 2016-06-13 08:45:46
원래의
1059명이 탐색했습니다.

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

我们在开发APP的服务器端,当和APP进行联调时通常需要实时跟踪URL请求和参数的接收情况。

 

但PHP并没有像Python或Java专有的控制台输出函数,Python的print()和Java的System.out.println(),PHP的echo,print等函数在直接使用php -f index.php时,可以打印以shell屏幕上,但在cli_server运行时并不能满足把调试信息只打印在shell而不显示在浏览器。

 

用度娘搜了好久,网上对PHP内置server cli模式的资料少之又少,根本找不到一点有用的信息。

 

通过查阅PHP官方文档,最后想到PHP的标准输出流STDOUT

  php://output 是一个只写的数据流, 允许你以 print 和 echo 一样的方式 写入到输出缓冲区

 

当在cli模式下运行时,只要向STDOUT写入数据时,并不需要echo 或 print 就会立即 打印 到 SHELL客户端:

 

于是,我们可以编写一个自定义函数来封装对sdtout标准输出流的数据的入,相当于随时把想要显示的调度信息打印到shell:

<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>
로그인 후 복사

 

当需要在内置Server每一个请求后,打印当前的调试信息时:直接调用console()即可

比如:

  打印所有接收到的GET或POST参数:

  console($_GET);

  console($_POST);

  

  打印字符串:

  console("hello php console debug");

  

 

以后再也不用羡慕Python和Java的控制台输出,PHP从此也有控制台输出函数了

 

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿