gpt4 book ai didi

PHP/Zend : How to force browsers to don't show warnings on webpage for a particular case?

转载 作者:行者123 更新时间:2023-12-02 06:44:15 25 4
gpt4 key购买 nike

我正在尝试像这样获取 Twitter 更新:

try {

$doc = new DOMDocument();
$doc->load('http://twitter.com/statuses/user_timeline/1234567890.rss');
$isOK = true;

} catch( Zend_Exception $e ) {
$isOK = false;
}

如果互联网连接没有问题,那么 $isOK = true;已设置。但是如果加载 Twitter 页面时出现问题,那么它会显示以下警告并且不会设置 $isOK = false;

警告:DOMDocument::load( http://twitter.com/statuses/user_timeline/1234567890.rss ) [domdocument.load]:无法打开流:HTTP 请求失败! HTTP/1.1 404 Not Found in/var/www/vcred/application/controllers/IndexController.php 第 120 行

我不想在任何情况下在我的网页上看到上述警告。有什么想法吗?

谢谢

最佳答案

几个选项:

Suppress all errors for just this function call

@$doc->load('http://twitter.com/statuses/user_timeline/1234567890.rss');

相同
$oldLevel = error_reporting(0);
$doc->load('http://twitter.com/statuses/user_timeline/1234567890.rss');
error_reporting($oldLevel);

通常不赞成以这种方式抑制错误,因为它会使代码更难调试。正如 Shrapnel 所指出的那样,您无论如何都希望禁止在生产系统上公开显示所有错误消息。在开发系统上,我们鼓励您使用 error_reporting(-1); ,这将启用 E_ALLE_STRICT

如果你想使用 try/catch ,你也可以更改默认的 error handling 并将所有错误转换为异常

function myErrorHandler($errno, $errstr, $errfile, $errline) {
throw new Exception($errstr, $errno);
}
set_error_handler("myErrorHandler");

不过,这是一个全局性的变化,会影响所有提出的问题。您还必须在您的代码中使用 catch(Exception $e) 而不是 Zend_Exception ,但它会起作用。请注意,上面的内容会转换所有内容,甚至是通知,因此如果您稍后尝试访问它,您还会收到关于 $isOk 未定义的异常。随意根据自己的喜好调整处理程序并查看 user comments for set_error_handler for more refined versions

另一个全局更改是更改应用程序文件夹中的 application.ini,例如让 Zend Framework 控制错误处理:

phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

根据您的需要更改这些。它们与 PHP.ini 中的相同,例如

display_errors :

This determines whether errors should be printed to the screen as part of the output or if they should be hidden from the user.

display_startup_errors :

Even when display_errors is on, errors that occur during PHP's startup sequence are not displayed. It's strongly recommended to keep display_startup_errors off, except for debugging.

关于PHP/Zend : How to force browsers to don't show warnings on webpage for a particular case?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2651303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com