效果如下
PHP Console是一个Chrome插件,可以帮助用户模拟真实的PHP网站运行环境,使用Chrome插件调试PHP代码。在Chrome中安装PHP Console插件后,用户可以在自己的PHP项目中引用PHP Console项目代码,并输出调试信息。让PHP Console插件捕获,这样网站发布成功后,还可以使用PHP Console插件向Chrome浏览器输出调试信息,用户可以通过PHP Console插件从PHP服务器查看这些调试日志。
当我们的PHP程序调试时,常见的方式是将变量的信息打印到浏览器中,例如:
?phpecho“pre”;print _ r($ bar);回声'/pre ';退出;但是,直接打印可能会扰乱您的页面,扰乱布局,并影响作为Api返回的数据。此时,我们可以将调试信息输出到一个文件中。下面是最简单的例子:
error_log(print_r($bar,true));但是这种方法适合日志记录,调试时还是不方便。这时我们可以使用现代浏览器的Console,比如Chrome Console(Win快捷键Ctrl Shift J),将内容输出到控制台,就可以解决这个问题。
现在有一些这样的工具,比如PHP-Console或者Chrome Logger。前者针对PHP,后者支持多种服务器端语言。使用方法是先安装一个Chrome扩展,然后提供服务器端库进行调用。实现方式是使用Session、Cookies等进行数据传输。
以上是比较完善的解决方案,提供了丰富的功能。但是,如果您只是想要一种简单、可用的方法来解决这个问题,而不需要安装扩展程序,您可以这样做:
?PHP function console _ log($ data){ if(is _ array($ data)| | is _ object($ data)){ echo(' script console . log(')。json_encode($data .)'');/script ');}else{echo('scriptconsole.log(')。$data。');/script ');}}本质上是在页面中添加一个javascript脚本,使用console.log()函数将信息输出到控制台。以上所有方法都是以字符串的形式打印的。如果去掉单引号,PHP数组和对象将以JS对象的形式打印,即Echo ('scriptconsole.log(')。JSON _ encode ($ data)。');/script ');你喜欢哪种方式?以上是最简单的实现方式,但是这样做不太好,就是输出很乱。如果你在不同的位置调用这个函数,一个脚本将被插入页面的每个位置。虽然JS几乎可以在页面的任何地方使用,但是我们可以有一个更好的方法将所有数据统一到一个输出中:
?Php//注册一个关机函数,如果不这样做,记住程序末尾的echo console _ log :3360 fetch _ output();register _ shut down _ function(' my _ shut down ');函数my _ shut down(){ echo Console _ log : fetch _ output();} class Console _ log { private static $ output=' ';静态函数日志($ data){ if(is _ array($ data)| | is _ object($ data)){ $ data=JSON _ encode($ data);} ob _ start();PHP if(self : $ output==' '):剧本?php endif?console.log('?=$ data?');php self: $输出。=ob _ get _ contents();ob _ end _ clean();}静态函数fetch _ output(){ if(self : $ output!==' '){ self : $输出。='/script ';}返回self: $ output}}注意上面的使用?=改为?Php echo,需要在php.ini中打开Short_open_tag=On这段代码使用Php的输出控制缓冲区功能保存数据,最后全部输出。