搜索

首页  >  问答  >  正文

解决PHP错误显示问题的方法

<p>我已经检查了我的PHP ini文件(<code>php.ini</code>),并且<code>display_errors</code>已经设置,错误报告也是<code>E_ALL</ code>。我已经重新启动了我的Apache web服务器。 </p> <p>我什至将这些行放在我的脚本顶部,但它甚至不能捕获简单的解析错误。例如,我用<code>"$"</code>声明变量,但我没有关闭语句<code>";"</code>。但是所有的脚本在这些错误上都显示一个空白页面,但我希望实际上在浏览器输出中看到<strong>错误</strong>。 </p> <pre class="brush:php;toolbar:false;">error_reporting(E_ALL); ini_set('display_errors', 1);</pre> <p>还有什么需要做的吗? </p>
P粉469090753P粉469090753491 天前607

全部回复(2)我来回复

  • P粉604507867

    P粉6045078672023-08-21 10:46:45

    您无法在启用运行时错误输出的同一文件中捕获解析错误,因为它在实际执行任何内容之前对文件进行解析(并且由于在此过程中遇到错误,它不会执行任何内容)。您需要更改实际的服务器配置,以便打开display_errors并使用适当的error_reporting级别。如果您无法访问php.ini,您可能可以使用.htaccess或类似的方法,这取决于服务器。

    此问题可能提供额外的信息。

    回复
    0
  • P粉691461301

    P粉6914613012023-08-21 00:29:27

    开发环境

    这对我总是有效:

    ini_set('display_errors', '1');
    ini_set('display_startup_errors', '1');
    error_reporting(E_ALL);

    然而,这并不能让PHP显示在同一文件中发生的解析错误 - 显示这些错误的唯一方法是修改你的php.ini文件,加入这一行:

    display_errors = on

    (如果你无法访问php.ini,那么将这一行放在.htaccess中也可能有效):

    php_flag display_errors 1

    生产环境

    请注意,上述建议仅适用于开发环境。在生产环境中,必须将其设置为:

    display_errors = off
    log_errors = on

    然后你就能在错误日志中看到所有的错误。请参阅在哪里找到PHP错误日志

    AJAX调用

    对于AJAX调用,在开发服务器上打开DevTools(F12),然后选择Network选项卡。 然后发起你想要查看结果的请求,它将出现在Network选项卡中。点击它,然后选择Response选项卡。在那里你将看到确切的输出。
    而在生产服务器上,同样只需检查错误日志。

    回复
    0
  • 取消回复