解決PHP錯誤顯示問題的方法
P粉469090753
2023-08-20 11:45:59
<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>
您無法在啟用運行時錯誤輸出的相同文件中捕獲解析錯誤,因為它在實際執行任何內容之前對文件進行解析(並且由於在此過程中遇到錯誤,它不會執行任何內容)。您需要更改實際的伺服器配置,以便打開display_errors並使用適當的error_reporting等級。如果您無法存取php.ini,您可能可以使用.htaccess或類似的方法,這取決於伺服器。
此問題可能提供額外的資訊。
開發環境
這對我總是有效:
然而,這並不能讓PHP顯示在同一文件中發生的解析錯誤 - 顯示這些錯誤的唯一方法是修改你的php.ini文件,加入這一行:
(如果你無法存取
php.ini
,那麼將這一行放在.htaccess
中也可能有效):生產環境
請注意,上述建議僅適用於開發環境。在生產環境中,必須將其設定為:
然後你就能在錯誤日誌中看到所有的錯誤。請參閱在哪裡找到PHP錯誤日誌
AJAX呼叫
對於AJAX調用,在開發伺服器上開啟DevTools(F12),然後選擇Network選項卡。 然後發起你想要查看結果的請求,它將出現在Network選項卡中。點擊它,然後選擇Response選項卡。在那裡你將看到確切的輸出。
而在生產伺服器上,同樣只需檢查錯誤日誌。