搜索
首页php教程php手册如何优雅的输出PHP调试信息
如何优雅的输出PHP调试信息Jun 06, 2016 pm 07:44 PM
php优雅信息出现如何调试输出

经常因为出现紧急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,在需要调试的地方直接调用它,递交的参数可以是字符串,也可以是数组。
如何优雅的输出PHP调试信息

 

3,在适当的位置调用无参数的console,用来输出调试信息,比如各类php框架入口文件的最底部
如何优雅的输出PHP调试信息

 

4,打开浏览器(比如chrome),载入页面后进入调试模式(比如按F12键),点击Console,你会发现所有数据都在这里等着你查阅。
如何优雅的输出PHP调试信息

 

5,其他用途
优秀的PHP开源框架ThinkPHP提供了输出运行状态的功能,你可以通过运行状态来了解某个页面在后台处理了多长时间。但是,很多人都注意到了,它是不准确的。

下面我们试着用刚刚加进来的自定义函数console在浏览器中输出真正的运行时间。
所有工作都在入口文件中完成:
如何优雅的输出PHP调试信息

在所有代码的最开头,定义变量$s=microtime(true);
在console();的上面再增加console('exetime:'.round(microtime(true)-$s,4));

好了,我们来看看真正的运行时间吧:
如何优雅的输出PHP调试信息

 

这个课题就这么简单愉快的解决了。
PS:因为这个函数用到了json来输出数组,所以要求编码为UTF-8,如果使用其它编码可能会出现未知问题,需要留意。

 

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么设置implode没有分隔符php怎么设置implode没有分隔符Apr 18, 2022 pm 05:39 PM

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

Go语言中如何输出带有换行符的文本Go语言中如何输出带有换行符的文本Mar 15, 2024 pm 04:15 PM

Go语言是一种现代化、高效且简洁的编程语言,广泛应用于各种领域的软件开发中。在Go语言中,输出带有换行符的文本非常简单,可以通过使用fmt包提供的Println函数实现。下面我们将具体介绍如何在Go语言中输出带有换行符的文本,以及相关的代码示例。在Go语言中,想要输出带有换行符的文本,可以使用fmt包提供的Println函数。Println函数会在输出文本的

php怎么给数组增加一个数组元素php怎么给数组增加一个数组元素Apr 19, 2022 pm 08:45 PM

增加元素的方法:1、使用“array_unshift(数组,数组元素)”语句,在数组的开头添加元素;2、使用“array_push(数组,数组元素)”语句,在数组的末尾添加元素;3、用“array_pad(数组,数组长度+1,元素)”语句。

如何优雅地使用Go和context进行错误处理如何优雅地使用Go和context进行错误处理Jul 21, 2023 pm 11:37 PM

如何优雅地使用Go和context进行错误处理在Go编程中,错误处理是一项非常重要的任务。优雅地处理错误可以提高代码的可读性、可维护性和稳定性。而Go语言的context包则为我们提供了一种非常方便的方式来处理与错误相关的操作。本文将介绍如何优雅地使用Go和context进行错误处理,并提供相关的代码示例。引言Go语言的错误处理机制是通过返回错误值的方式来实

哈医大临床药学就业是否有前途(哈医大临床药学就业前景怎么样)哈医大临床药学就业是否有前途(哈医大临床药学就业前景怎么样)Jan 02, 2024 pm 08:54 PM

哈医大临床药学就业前景如何尽管全国就业形势不容乐观,但药科类毕业生仍然有着良好的就业前景。总体来看,药科类毕业生的供给量少于需求量,各医药公司和制药厂是吸纳这类毕业生的主要渠道,制药行业对人才的需求也在稳步增长。据介绍,近几年药物制剂、天然药物化学等专业的研究生供需比甚至达到1∶10。临床药学专业就业方向:临床医学专业学生毕业后可在医疗卫生单位、医学科研等部门从事医疗及预防、医学科研等方面的工作。就业岗位:医药代表、医药销售代表、销售代表、销售经理、区域销售经理、招商经理、产品经理、产品专员、护

Laravel框架介绍:优雅的PHP开发新选择Laravel框架介绍:优雅的PHP开发新选择Aug 13, 2023 am 08:46 AM

Laravel框架介绍:优雅的PHP开发新选择引言:在过去的几年中,PHP开发领域一直在不断发展和壮大。而在众多PHP框架中,Laravel无疑是一款备受瞩目的框架之一。它以其清晰简洁的语法、全面的功能和卓越的性能而受到开发者的喜爱。本文将向你介绍Laravel框架的基本特点,并通过代码示例展示其灵活和优雅的开发风格。一、Laravel框架的特点1.优雅的代

php怎么统计数组里同一个值有几个php怎么统计数组里同一个值有几个Apr 19, 2022 pm 08:26 PM

在php中,可以使用array_count_values()函数来统计数组里同一个值有几个,语法为“array_count_values($array)”;该函数会返回一个关联数组,其元素的键名是原数组的值,键值是该值在原数组中出现的次数。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境