如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

分析别人的php代码,总是需要:比较大的耐心以及灵活跳跃的思路。当然,如果辅助以一些调试手段,就会起到事半功倍的效果。

php程序的分析,一般可以从php程序体和mysql数据库,这两个方面着手分析。

  • mysql方面,一般可以从慢查询角度分析,但不是本文的描述重点,具体可以参见文末链接。
  • php方面,在本文中,也不是从扩展角度来分析php堆栈,而只是利用php原生提供功能来分析源码。目标是要得到代码函数间的调用关系。

场景描述

苏南大叔已经通过关键词定位到了关键的函数代码点。但是程序是通过什么样的顺序,执行到当前代码位置的呢?代码运行期间,有着什么样的函数调用关系呢?

本文解决的就是这个问题。苏南大叔通过在关键点代码附近添加如下辅助代码,来进行分析。

方案一debug_backtrace()

print_r(debug_backtrace());

这个方案,必须有强大的信息过滤能力,因为返回结果中,似乎无用信息过多。其实只需要数组根元素下的数据即可。下面的链接,是个相关函数说明。大家可以看看。

未知php代码分析,堆栈打印函数总结 - 375

方案二,异常对象的方法getTraceAsString()

newsn.net:这里是【评论】可见内容

这个方案,其实有点剑走偏锋,不过,效果确实相当不错,结果简洁明了,推荐大家使用。

相关链接

总结

分析别人的代码,才能学习进步。别人好的思路,都要包容兼收。对吧?好文章也是,想知道苏南大叔的php相关好文章好思路嘛?点击下面这个链接,就可以知道了。

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。