我正在尝试使用PHP调用URL以检查它是否存在且可以访问。
我的初始代码是
fopen('http://'.$this -> url, 'r');
但每次URL无法访问时,它都会抛出以下错误:
fopen(http://dwzegdzgwedzgew.com): failed to open stream: php_network_getaddresses: getaddrinfo failed
php_network_getaddresses: getaddrinfo failed:
在这种情况下会忽略错误运算符(@),因为fopen本身并没有在解析asdress时抛出错误。所以我认为应该这样做:
@fopen(@'http://'.$this -> url, 'r');
但它也会继续抛出错误。
在打开之前检查PHP中是否存在URL,是否存在非错误抛出的可能性?
答案 0 :(得分:1)
$ressource = @fopen('http://' . $this->url, 'r');
的错误消息是什么?
<?php
$urls = array('kihgkighuhgkig.li', 'google.com', 'adsfafdf.fr');
foreach ($urls as $url)
{
if (gethostbyname($url) != $url)
{
$ressource = fopen('http://' . $url, 'r');
var_dump($url, $ressource);
}
}
输出结果为:
$> php test.php
string(10) "google.com"
resource(6) of type (stream)