尝试打开无效/无法访问的 URI 时如何阻止 fopen 触发警告
Posted
技术标签:
【中文标题】尝试打开无效/无法访问的 URI 时如何阻止 fopen 触发警告【英文标题】:How to stop fopen from triggering warning when attempting to open an invalid/unreachable URI 【发布时间】:2011-07-12 02:21:25 【问题描述】:我正在使用 fopen 生成价格馈送。
if (($handle = fopen("http://feedurl", "r")) !== FALSE)
如果提要失败,是否有办法停止此警告:
警告: fopen() [function.fopen]: php_network_getaddresses: getaddrinfo failed: Name or service not known in...
【问题讨论】:
【参考方案1】:您可以使用@
来抑制警告:
if(($handle = @fopen("http://feedurl", "r")) !== FALSE)
这很适合这里因为您正在适当地处理错误情况。请注意,通常不建议随意使用 @
符号来抑制错误和警告。
根据manual entry for fopen
:
如果打开失败,则会产生 E_WARNING 级别的错误。您可以使用 @ 来抑制此警告。
【讨论】:
谢谢马克,效果很好!我不敢相信人们对 *** 问题的反应速度如此之快! 它还会删除所有其他输出【参考方案2】:这是另一种可能的解决方案
$file_name = "http://feedurl";
if (file_exists($file_name) === false)
return;
$handle = fopen($file_name, "r");
【讨论】:
【参考方案3】:或者你可以使用
error_reporting(E_ALL ^ E_WARNING);
【讨论】:
为什么要隐藏该脚本中执行的所有函数的所有警告?以上是关于尝试打开无效/无法访问的 URI 时如何阻止 fopen 触发警告的主要内容,如果未能解决你的问题,请参考以下文章
无效的 URI:无法解析主机名。 Visual Studio 和 Chocolatey 安装问题