跟踪代码的来源 (PHP)

2024-06-28

我正在浏览客户的服务器,运行疯狂的专有论坛 软件(vBulletin),甚至更糟糕的 SEO 模组(vbseo)。我想不通 找出页面的 php 代码来自哪里!如何追踪这个 返回 PHP 页面的 URL:http://www.example.com/forum/members/connie.html http://www.example.com/forum/members/connie.html我刚刚加入了一个项目,其代码基于经过大量修改的 vBullitin 安装和 VBSEO 插件。这个特殊的插件是可怕的意大利面条代码,包含数十个 include()、.htaccess 重定向以及可能的 .httpd.conf 更改。然后它从数据库中提取字符串,所以我什至无法使用 grep 来查找代码文件!

有没有办法对 PHP 进行堆栈跟踪来记录生成页面的所有代码?我有 root 访问权限,但我不应该停止或重新启动服务器。生成页面的文件的 include() 层次结构的简单列表就足够了。

请注意,我无法使用 debug_backtrace,因为我不知道我要查找的代码在哪里! debug_backtrace 函数与我需要的完全相反。

Thanks.


听起来你需要逐步完成它Xdebug http://xdebug.org/。最常见的 IDE 支持它,例如Netbeans http://netbeans.org/features/php/ and PHPStorm http://www.jetbrains.com/phpstorm/.

资源:

  • 使用 Xdebug 跟踪 PHP 应用程序 http://devzone.zend.com/article/2871
  • 使用 Netbeans 进行 Xdebug http://netbeans.org/kb/docs/php/debugging.html
  • 使用 PHPstorm 进行 Xdebug http://blog.jetbrains.com/webide/2011/02/zero-configuration-debugging-with-xdebug-and-phpstorm-2-0/(我建议)
  • 使用 Eclipse 进行 X 调试 http://techmania.wordpress.com/2008/07/02/debugging-php-in-eclipse-using-xdebug/
  • Chrome Xdebug 扩展 https://chrome.google.com/extensions/detail/eippbhbeglgcphcjmpjcjinjamabeoln(我建议)
  • 火狐Xdebug插件 https://addons.mozilla.org/en-US/firefox/addon/easy-xdebug/

在上述两个 IDE 中,您可以按住 CTRL 键并单击函数/方法,它会将您带到文件中定义该函数/方法的行。您还可以跟踪函数和变量的使用情况。

跟踪代码内置于 xdebug 中。这是 Zend 的一个示例:

<?php

  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]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

跟踪代码的来源 (PHP) 的相关文章

  • PHP 会话混乱

    好吧 我已经很困惑了 我有一个存储在会话中的对象 我可以向该对象添加项目 到目前为止非常简单 我像这样初始化对象 template new Template mysqli SESSION template serialize templat
  • 在cakephp中调用函数

    public function data if old status prev lat lat prev long long if status Village Unknown exec query else if status Town
  • 如何获得DiVs等级?

    html div class div class p strong span style color FF0000 Content1 span strong p p style text align center Content2 img
  • 比在配置文件中以纯文本形式存储 mysql 密码更好的方法吗?

    许多 PHP 程序要求用户将 mysql 密码以纯文本 字符串或常量 形式存储在应用程序根目录的配置文件中 这一直困扰着我 这么多年过去了 还有更好的方法吗 到目前为止 我已经提出了两个最小的安全提升方案 使用 htaccess 中的规则使
  • PHP 中的金字塔星号

    请看我的代码 for row var row gt 1 row for j 0 j lt row j echo echo echo nbsp Output 但我需要输出如下 您可能想查看一些字符串函数
  • ImagickException 并显示消息 Postscript delegate 在 MAMP 3.0.5 上失败

    我正在尝试使用 MAMP 3 0 5 将 PDF 转换为 png 文件 我知道我的 PHP 代码可以在我们的 Linux 服务器上正常运行 我在 Mac OSX 10 8 5 上安装了 MAMP 3 0 5 当我运行脚本将 PDF 转换为
  • 未找到请求的 URL - Laravel 5

    我正在尝试将一个网络应用程序 我使用 Laravel 5 制作 上传到 DigitalOcean Droplet 但我得到一个404错误 在此服务器上找不到请求的 URL public login 这是我的Apache2 conf
  • 多个 PHP 会话

    我要为一个网站构建一个 PHP 应用程序 该网站已经有另一个 PHP 应用程序在同一域 服务器上运行 我的应用程序当然会使用会话 并且我不希望我的会话干扰现有应用程序 例如 如果我想使用 SESSION username 也许其他应用程序也
  • 执行通过 AJAX 加载的 Javascript [重复]

    这个问题在这里已经有答案了 可能的重复 如何执行动态加载的 JavaScript 块 https stackoverflow com questions 75943 how do you execute a dynamically load
  • 如何检查 PHP 数组是关联数组还是顺序数组?

    PHP 将所有数组视为关联数组 因此没有任何内置函数 任何人都可以推荐一种相当有效的方法来检查数组是否 是一个列表 只包含从0开始的数字键 基本上 我希望能够区分这一点 sequentialArray apple orange tomato
  • 如何从 PHP 中的两个日期范围中提取每周一和每两周的周一?

    我正在使用臭名昭著的 jQuery UI 的日期选择器 并在我的表单中选择两个日期的范围 首先代表的是starting另一个代表日期end date 我现在需要的是算法 一些提示和方向或帮助者来计算这两个日期之间的每个星期一 例如 star
  • 如何检查 PHP 中的数组?

    我能想到的最好的是 function is array alike array return is array array is object array array instanceof ArrayAccess array instanc
  • 如何将多个动态行插入数据库

    我有一个使用 php 和 jQuery 创建的多行动态表 这是查看表格的链接 https jsfiddle net soumyar c8w2Lrk8 一切工作正常 除了当我将数据插入数据库时 序列号不按顺序保存 我的插入查询如下 for i
  • 多个复选框 - 更改消息“如果要继续,请选中此框”

    我有一个多选复选框表单 我在其中添加了 JS 以确保访问者至少选择一个选项 div class form group options div
  • 在 woocommerce 中创建带有音频文件的可下载产品

    相信你的一天过得很充实 我需要从前端创建一个可下载的 woocommerce 产品 我已经能够创建链接来发布产品并将音频文件添加为附件 但我需要在付款后使此附件可下载 就像您从仪表板发布可下载的 woocommerce 产品时一样 我已经可
  • 分页打印所有数据

    我在打印数据表中具有分页的所有数据时遇到问题 我已经做过研究并在此链接中发现了同样的问题 仅打印 https stackoverflow com questions 468881 print div id printarea div onl
  • php 字符串与通配符 * 匹配?

    我想提供将字符串与通配符匹配的可能性 Example mystring dir folder1 file pattern dir file stringMatchWithWildcard mystring pattern gt Return
  • 图像上的中心水印

    我需要在图像上添加水印 我已经使用此代码解决了问题 工作良好 但图像位于左 下角 如何设置水印在图片中心居中 img test jpg Load the image where the logo will be embeded into i
  • HTACCESS 404 错误无法正常工作

    问题 在此服务器上找不到请求的 URL welcome php 此外 尝试使用 ErrorDocument 处理请求时遇到 404 Not Found 错误 事情是这样的 当我访问 www mysite com page 时它工作正常 如果
  • 正确使用 GuzzleHttp/Psr7/Response

    不确定在 php 页面中显示 Psr7 Guzzle Response 的正确方法是什么 现在 我正在做 use GuzzleHttp Psr7 BufferStream use GuzzleHttp Psr7 Response class

随机推荐