PHP内置WebServer探究(⼆)⾃定义PHP控制台输出
console函数
我们在开发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是⼀个只写的数据流,允许你以和⼀样的⽅式写⼊到输出缓冲区
当在cli模式下运⾏时,只要向STDOUT写⼊数据时,并不需要echo 或 print 就会⽴即打印到 SHELL客户端:
于是,我们可以编写⼀个⾃定义函数来封装对sdtout标准输出流的数据的⼊,相当于随时把想要显⽰的调度信息打印到shell:
1/*
2* cli模式或者内置server打印调试信息,⽽不在浏览器输出
3* param fixed $data 参数可以是除了对象以外的所有数据类型,⽐如:字符串,数组,jason等
4*/
5function console($data){
6$stdout = fopen('php://stdout', 'w');
7fwrite($stdout,json_encode($data)."\n"); //为了打印出来的格式更加清晰,把所有数据都格式化成Json字符串
8fclose($stdout);
9 }
当需要在内置Server每⼀个请求后,打印当前的调试信息时:直接调⽤console()即可
⽐如:
打印所有接收到的GET或POST参数:
console($_GET);
console($_POST);
打印字符串:phpjson格式化输出
console("hello php console debug");
以后再也不⽤羡慕Python和Java的控制台输出,PHP从此也有控制台输出函数了
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论