Wie zeige ich PHP-Fehler an?
P粉807397973
2023-08-23 10:45:28
<p>Ich habe meine PHP-INI-Datei (<code>php.ini</code>) überprüft und <code>display_errors</code> festgelegt und die Fehler werden als <code>E_ALL</code> gemeldet. . Ich habe meinen Apache-Webserver neu gestartet. </p>
<p>Ich habe diese Zeilen sogar oben im Skript eingefügt und es werden nicht einmal einfache Parsing-Fehler erkannt. Beispielsweise deklariere ich eine Variable mit <code>"$"</code>, schließe die Anweisung jedoch nicht mit <code>";"</code>. Aber alle meine Skripte zeigen bei diesen Fehlern eine leere Seite an, aber ich möchte die <strong>Fehler</strong> tatsächlich sehen. </p>
<pre class="brush:php;toolbar:false;">error_reporting(E_ALL);
ini_set('display_errors', 1);</pre>
<p>Was muss noch getan werden? </p>
您无法在运行时启用错误输出的同一文件中捕获解析错误,因为它在实际执行任何内容之前解析文件(并且由于在此期间遇到错误,因此它不会执行任何内容)。您需要更改实际的服务器配置,以便打开 display_errors 并使用适当的 error_reporting 级别。如果您无权访问 php.ini,您也许可以使用 .htaccess 或类似文件,具体取决于服务器。
此问题可能会提供更多信息。
开发环境
这对我来说总是有效:
但是,这不会使 PHP 显示同一文件中发生的解析错误 - 显示这些错误的唯一方法是使用以下行修改 php.ini:
(如果您无权访问
php.ini
,则将此行放入.htaccess
中也可能有效):产品环境
请注意,上述建议仅适用于开发环境。在实际网站上,它必须是
然后您将能够在错误日志中看到所有错误。请参阅在哪里可以找到 PHP 错误日志
AJAX 调用
如果是 AJAX 调用,请在开发服务器上打开 DevTools (F12),然后打开“网络”选项卡。 然后发起您想要看到的结果的请求,它将出现在“网络”选项卡中。单击它,然后单击“响应”选项卡。在那里您将看到确切的输出。
在实时服务器上时,只需检查错误日志即可。