经常因为出现紧急bug而被老板骂的同事,为了更快的修复而直接利用线上的错误环境现场debug,并直接在页面上echo和dump。结果被老板发现了,又是一通臭骂。那么有没有什么办法更优雅的输出PHP调试信息呢? 这里提供一个方案:利用浏览器调试模式的Console 1,
经常因为出现紧急bug而被老板骂的同事,为了更快的修复而直接利用线上的错误环境现场debug,并直接在页面上echo和dump。结果被老板发现了,又是一通臭骂。那么有没有什么办法更优雅的输出PHP调试信息呢?
这里提供一个方案:利用浏览器调试模式的Console
1,先定义一个php函数:
<span> 1</span> <span>function</span> console(<span>$log</span>=''<span>) </span><span> 2</span> <span>{ </span><span> 3</span> <span>switch</span> (<span>empty</span>(<span>$log</span><span>)) { </span><span> 4</span> <span>case</span> <span>False</span>: <span> 5</span> <span>$out</span> = json_encode(<span>$log</span><span>); </span><span> 6</span> <span>$GLOBALS</span>['console'] .= 'console.log('.<span>$out</span>.');'<span>; </span><span> 7</span> <span>break</span><span>; </span><span> 8</span> <span> 9</span> <span>default</span>: <span>10</span> <span>echo</span> '<script type="text/javascript">'.<span>$GLOBALS['console'].'</script>'<span>; </span><span>11</span> <span> } </span><span>12</span> }
2,在需要调试的地方直接调用它,递交的参数可以是字符串,也可以是数组。
3,在适当的位置调用无参数的console,用来输出调试信息,比如各类php框架入口文件的最底部
4,打开浏览器(比如chrome),载入页面后进入调试模式(比如按F12键),点击Console,你会发现所有数据都在这里等着你查阅。
5,其他用途
优秀的PHP开源框架ThinkPHP提供了输出运行状态的功能,你可以通过运行状态来了解某个页面在后台处理了多长时间。但是,很多人都注意到了,它是不准确的。
下面我们试着用刚刚加进来的自定义函数console在浏览器中输出真正的运行时间。
所有工作都在入口文件中完成:
在所有代码的最开头,定义变量$s=microtime(true);
在console();的上面再增加console('exetime:'.round(microtime(true)-$s,4));
好了,我们来看看真正的运行时间吧:
这个课题就这么简单愉快的解决了。
PS:因为这个函数用到了json来输出数组,所以要求编码为UTF-8,如果使用其它编码可能会出现未知问题,需要留意。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

記事本++7.3.1
好用且免費的程式碼編輯器