搜尋

首頁  >  問答  >  主體

解決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粉469090753533 天前633

全部回覆(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
  • 取消回覆