我正在通过客户的服务器,运行疯狂的专有论坛
软件(vBulletin)甚至更糟糕的SEO mods(vbseo).我无法想象
一个页面的PHP代码来自哪里!如何追踪这一点
返回PHP页面的URL:
http://www.example.com/forum/members/connie.html
我刚加入了一个项目,其代码基于使用VBSEO插件进行大量修改的vBullitin安装.这个特殊的插件是可怕的意大利面条代码,包含数十个include(),.htaccess重定向和可能的.httpd.conf更改.然后它从数据库中提取字符串,所以我甚至无法使用grep来查找代码文件!
有没有办法堆栈跟踪PHP来记录运行生成页面的所有代码?我有root访问权限,但我不应该停止或重新启动服务器.生成页面的文件的include()层次结构的简单列表就足够了.
请注意,我不能使用debug_backtrace,因为我不知道我正在寻找的代码在哪里! debug_backtrace函数与我需要的完全相反.
谢谢.
解决方法:
听起来你需要用Xdebug来完成它.最常见的IDE支持它,如Netbeans和PHPStorm.
资源:
在上面提到的两个IDE中,您可以按CTRL单击一个函数/方法,它将带您到文件中定义它的行.您还可以跟踪函数和变量的用法.
跟踪代码内置于xdebug.以下是Zend的一个例子:
xdebug_start_trace('c:/data/fac.xt');
print fac(7);
function fac($x)
{
if (0 == $x) return 1;
return $x * fac($x - 1);
}
xdebug_stop_trace();
?>
跟踪文件输出:
TRACE START [2007-10-26 12:18:48]
0.0068 53384 -> fac() C:\www\fac.php:5
0.0069 53584 -> fac() C:\www\fac.php:10
0.0069 53840 -> fac() C:\www\fac.php:10
0.0070 54096 -> fac() C:\www\fac.php:10
0.0070 54376 -> fac() C:\www\fac.php:10
0.0071 54656 -> fac() C:\www\fac.php:10
0.0072 54936 -> fac() C:\www\fac.php:10
0.0072 55216 -> fac() C:\www\fac.php:10
0.0073 55392 -> xdebug_stop_trace() C:\www\fac.php:13
0.0237 55392
TRACE END [2007-10-26 12:18:48]
标签:php,trace
来源: https://codeday.me/bug/20190610/1209883.html