Остановить сообщение об ошибке из функции php 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() - пустая трата времени - это не будет подавлять предупреждающие сообщения, только содержимое, которое вы выкачиваете через эхо и т. Д. Так что отбросьте эти две строки.
Error_reporting(0) должно быть достаточно - это говорит "отключить все ошибки". Вы не получите его в своем журнале ошибок или на экране. Но пользовательский обработчик ошибок по-прежнему будет вызываться.
"Display_errors" не даст перейти на экран, но он появится в ваших файлах журнала.
@ Также подавит сообщение - по сути, оно временно устанавливает "error_reporting(0)". Но обработчик ошибок Cusom по-прежнему будет вызываться.
Таким образом, единственное, что обходит все это, это пользовательский обработчик ошибок. Это все равно будет вызываться, даже если вы подавите ошибку с помощью @ или имеете error_reporting(0). Обработчик ошибок клиента должен сам вызвать error_reporting() и, если "0" должен убедиться, что он не выдает ошибку. Вероятно, у него есть свой собственный код "держи буфер, выплюни мое сообщение и восстанови буфер", поэтому он обходит ob_start().
Я могу думать только о том, что я только что выполнил ваш код выше и через консоль, и через webbrowser / apache, и все чисто - никаких предупреждений и т. Д., Как вы хотите, не отображается.