解决PHP错误显示问题的方法
P粉469090753
P粉469090753 2023-08-20 11:45:59
0
2
606
<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粉469090753
P粉469090753

全部回复(2)
P粉604507867

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

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

P粉691461301

开发环境

这对我总是有效:

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选项卡。在那里你将看到确切的输出。
而在生产服务器上,同样只需检查错误日志。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板