如果URL不存在,如何处理get_headers()函数

时间:2017-10-09 14:26:39

标签: php

虽然使用函数public class Foo { public void foo(Object[] data) { for(int i=0; i<data.length; i++) { bar(data[i]); // <-- and here } } private void bar(Object o) { //... } } ,例如,如果我写了

get_headers()

我收到以下错误

  

警告:get_headers():php_network_getaddresses:getaddrinfo失败:   没有这样的主机已知警告:   get_headers(www.websitedoesntexist.com):无法打开流:   php_network_getaddresses:getaddrinfo失败:没有这样的主机

我想知道如何处理这些问题,比如

get_headers("www.websitedoesntexist.com");

3 个答案:

答案 0 :(得分:2)

从PHP手册:

  

返回带标题的索引或关联数组,或失败时返回FALSE。

这意味着您可以针对ned = {} nel =[] with open('test.dat', 'r') as f: for line in f: splitline= line.split() print(splitline) ned[int(splitline[0])] = ",".join(splitline[1:]) 进行测试。

了解详情:http://php.net/manual/en/function.get-headers.php

修改

如果您只想检查网址是否存在,而不是压制错误,我建议您使用curl,这样的简单函数可以完成这项工作:

FALSE

答案 1 :(得分:1)

抑制get_headers()函数的错误。将get_headers分配给变量。然后检查该变量的布尔值。

 $file_headers = @get_headers("www.websitedoesntexist.com");
 if(!$file_headers) {
     $exists = false;
 }
 else {
     $exists = true;
 }

修改:

根据评论,使用curl获得更好,更长期的解决方案,请参阅https://stackoverflow.com/a/36743670/4374801

答案 2 :(得分:0)

如果要检查url是否存在于php中,只需编写this.testing目的代码

$array = get_headers('url');
$string = $array[0];
    if (strpos($string, "200")) {
    echo "thats cool dude";
} else {
    echo "Bad request";
}