簡體   English   中英

從php函數gzuncompress停止錯誤消息

[英]Stop error message from php function gzuncompress

以下php代碼輸出控制台“數據錯誤”。 發生這種情況的原因是一個已知問題,但我想擺脫錯誤消息。

<?php   
    gzuncompress("foo");
?>

我在網上搜索了如何在php上抑制錯誤消息,並嘗試了以下方法,但沒有成功:

<?php   
    error_reporting(0); 
    ini_set("display_errors",0);
    ob_start(); 
    @gzuncompress("foo");
    ob_end_clean();
?>

非常感謝你!

這很可能是您指定了自定義錯誤處理程序。

推理:

  1. ob_start()/ ob_end_clean()是浪費時間 - 這不會壓制警告信息,只會通過回聲等方式輸出內容。所以放棄這兩行。

  2. error_reporting(0)應該足夠 - 這表示“關閉所有錯誤”。 您不會在錯誤日志或屏幕上看到它。 但仍會調用自定義錯誤處理程序。

  3. “display_errors”將阻止它進入屏幕,但它將出現在您的日志文件中。

  4. @也會壓制消息 - 實質上它會暫時設置“error_reporting(0)”。 但仍會調用cusom錯誤處理程序。

因此,解決所有這些問題的唯一方法是自定義錯誤處理程序。 即使你用@來壓縮錯誤或者有error_reporting(0),它仍會被調用。 客戶錯誤處理程序本身應調用error_reporting(),如果“0”應確保它不會產生錯誤。 它可能有它自己的“保持緩沖區,吐出我的消息然后恢復緩沖區”代碼,這就是為什么它繞過ob_start()。

只有我能想到的原因:我剛剛通過控制台和webbrowser / apache運行你的代碼並且它很干凈 - 沒有警告顯示等,如你所願。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM