PHP file_get_contents() 的全局错误处理
我在使用 file_get_contents 时偶尔会遇到错误,并且在我的脚本中使用了相当多的内容。我知道我可以使用 @file_get_contents
单独抑制错误,并且可以使用 设置全局错误消息
//error handler function
function customError($errno)
{
echo 'Oh No!';
}
//set error handler
set_error_handler("customError");
但是如何专门为所有 file_get_content 的用途设置错误处理程序?
谢谢
I am occasionally getting errors while using file_get_contents and its used a fair bit in my script. I know I can suppress errors individually with @file_get_contents
and that I can set global error messages with
//error handler function
function customError($errno)
{
echo 'Oh No!';
}
//set error handler
set_error_handler("customError");
But how do I specifically set an error handler for all file_get_content's uses?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以在调用 file_get_contents 之前设置自定义 error_handler,然后在 file_get_contents 之后立即使用 Restore_error_handler() 函数。如果您的代码中多次使用 file_get_contents,您可以通过一些自定义函数包装 file_get_contents。
you may set your custom error_handler before invoking file_get_contents and then use restore_error_handler() function right after file_get_contents. if there is multiple usage of file_get_contents in your code, you may wrap file_get_contents by some custom function.
@
并没有真正抑制您发现的错误。它们仍然显示在您的自定义错误处理程序中。要在那里忽略“抑制”错误,您必须首先探测当前的error_level
:只是猜测。如果您的意思有所不同,请扩展您的问题。 (如果没有发生任何错误,则不能为每个 file_get_contents 调用调用错误处理程序。)
@
does not really suppress the errors as you've discovered. They still show up in your custom error handler. And to have "suppressed" errors ignored there, you have to first probe for the currenterror_level
:Just guessing. If you meant something different, please extend your question. (You cannot have an error handler invoked for each file_get_contents call - if there didn't occur any error.)
或检查跟踪并处理错误(如果引用函数为 file_get_contents)
or check the trace and handle error if referer function is file_get_contents
您的错误处理函数需要更全面。
你会做类似的事情:
your error handler function would need tobe more comprehensive then that.
you would do something like: