• 技术文章 >php教程 >php手册

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

    2016-06-13 08:45:46原创581

    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:

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

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

    比如:

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

      console($_GET);

      console($_POST);

      

      打印字符串:

      console("hello php console debug");

      

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

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:PHP设计模式之观察者模式实例,php设计模式观察者 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • PHP实现通过get方式识别用户发送邮件的方法• Codeigniter框架实现获取分页数据和总条数的方法• php将csv文件导入到mysql数据库的方法,• php批量添加数据与批量更新数据的实现方法,php添加数据• PHP弹出提示框并跳转到新页面(重定向)
    1/1

    PHP中文网