【问题标题】:How can I tell where exit or die is being called from within a php script如何判断从 php 脚本中调用 exit 或 die 的位置
【发布时间】:2016-01-29 06:18:28
【问题描述】:

我有一个与 Wordpress 挂钩的 PHP 脚本(通过 wp-load.php)来执行各种操作。出于某种原因,在脚本期间,在运行update_post_meta(它在一个循环中)之后,脚本就停止了。没有错误,异常。什么都没有。

我注册了一个关闭函数并被调用,所以对我来说,似乎另一个插件以某种方式调用了dieexit。有没有办法找出它在哪里被调用?也许是某种回溯?

【问题讨论】:

  • 你打开wp调试了吗?你那里有什么错误吗?
  • 在您所在的页面上,在 Chrome 中,打开检查器,然后转到“网络”选项卡。然后在过滤器栏所在的栏中,选择 XHR(您可以选择全部,但由于您提到了dieexit,我假设正在进行 AJAX 调用)。然后,当您调用脚本时,您应该会看到正在加载的所有脚本以及它们的信息(标题、预览、响应、Cookie 和时间)。
  • 如果 php 标志 display_errors 设置为 false,或 error_reporting = 0(或 ~E_ALL),则不会出现错误和异常。是吗?如果您认为您的脚本在 die() 或 exit() 调用后真的停止了,那么您可以在文本编辑器中使用文件内容搜索 exitdie
  • @KondukterCRO。非常感谢...这解决了我的问题。我在做error_reporting(E_ALL),但这并没有给我任何帮助。
  • 没问题。你现在解决了吗?

标签: php wordpress


【解决方案1】:

这是不可能的。没有办法轻松可靠地捕获 die() 和 exit() 您需要检查每个文件过滤修改日期

【讨论】:

    【解决方案2】:

    就像 Sunil Kumar Sain 所说,没有可靠的方法来捕获 die() 和 exit() 但你可以在 wp.php 中找到 php 错误。您可以将 wp debug 设置为 true。您可以在 wordpress 根目录的 wp-config.php 文件中找到它。 其他人添加更多捕获错误的方法会很棒。随意编辑。

    【讨论】:

      【解决方案3】:

      正确的方法是使用像PHPStorm 这样的IDE 和像Xdebug 这样的PHP 调试工具。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-03
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多