PHP - 如何打印在PHP命令行脚本中执行的所有语句?

2 投票
3 回答
1790 浏览
提问于 2025-04-15 13:30

在Python中,可以使用trace模块来追踪命令行脚本执行的所有语句。在bash中,可以通过输入set -x来实现同样的功能。我们有一个PHP脚本,是从命令行运行的,就像普通的bash、python、perl等脚本一样。这里没有涉及到网页的内容。

有没有办法获取所有正在执行的代码行的追踪信息呢?

3 个回答

-1

我有点看不太清楚,但我想你可以试试把所有相关的代码写在自定义的函数里,然后调用 debug_backtrace() 这个函数。还有 debug_print_backtrace 这个函数也可能会对你有帮助。

希望这些能帮到你。

1

在纯PHP中,似乎没有办法做到这一点。

不过,你可以使用调试工具;一个不错的选择是:

  • 使用扩展 Xdebug,它可以作为一个 调试器
  • 还有一些图形化的IDE,它们集成了一些调试工具,比如 Eclipse PDT

顺便说一下,这两个工具都是免费的。

有了这些工具,你可以逐步执行代码,设置断点,查看变量的内容,查看调用堆栈等等……而且它们适用于网页脚本和命令行脚本哦;-)

当然,这意味着你需要在运行脚本的机器上启动Eclipse……但如果你是在自己的开发机器上执行,通常会有图形界面,应该没问题……
(我知道,对于网页应用,你可以在与PHP网页服务器不同的机器上运行Eclipse——不过我不确定在命令行下是否也可以这样做)


顺便提一下:也许你可以把Xdebug和基于命令行的调试器结合起来;可以查看我之前提到的页面,里面有支持的工具列表。

2

有一个叫做 apd 的PECL扩展,它可以生成一个跟踪文件。

撰写回答