Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在尝试打开无效/无法访问的URI时阻止fopen触发警告_Php - Fatal编程技术网

Php 如何在尝试打开无效/无法访问的URI时阻止fopen触发警告

Php 如何在尝试打开无效/无法访问的URI时阻止fopen触发警告,php,Php,我正在使用fopen生成一个价格提要 if (($handle = fopen("http://feedurl", "r")) !== FALSE) { } 如果馈送失败,是否有方法停止此警告: 警告:fopen()[function.fopen]:php\u network\u getaddresses:getaddrinfo失败:名称或服务在中未知 可以使用来抑制警告: if(($handle = @fopen("http://feedurl", "r")) !== FALSE){ }

我正在使用fopen生成一个价格提要

if (($handle = fopen("http://feedurl", "r")) !== FALSE) {

}
如果馈送失败,是否有方法停止此警告:

警告:fopen()[function.fopen]:php\u network\u getaddresses:getaddrinfo失败:名称或服务在中未知

可以使用来抑制警告:

if(($handle = @fopen("http://feedurl", "r")) !== FALSE){

}
这在这里是合适的,因为您正在适当地处理错误条件。请注意,一般来说,自由使用
@
符号来抑制错误和警告是不明智的

根据:

如果打开失败,将生成E_级警告错误。您可以使用@来抑制此警告

或者你可以使用

error_reporting(E_ALL ^ E_WARNING);

这是另一个可能的解决办法

$file_name = "http://feedurl";
if (file_exists($file_name) === false) {
    return;
}
$handle = fopen($file_name, "r");

谢谢你,马克,效果很好!我真不敢相信人们对stackoverflow上的问题反应有多快!它还会删除所有其他输出为什么要隐藏该脚本中执行的所有函数的所有警告?