使用PHP检查和打开URL的错误

时间:2010-03-28 08:47:11

标签: php

这是一个没有任何错误的脚本

$url="http://yahoo.com";
$file1 = fopen($url, "r");
$content = file_get_contents($url); 


$t_beg = explode('<title>',$content);
$t_end = explode('</title>',$t_beg[1]);
echo $t_end[0];

这是使用外观检查多个网址并获取错误的相同脚本

    for ($j=1;$j<=$i;$j++) {
    if ($x[$j]!=''){

    $t_u = "http:".$x[$j];

    $file2 = fopen($t_u, "r");


        $content2 = file_get_contents($t_u); 
        $t_beg = explode('<title>',$content);
        $t_end = explode('</title>',$t_beg[1]);
                echo $t_end[0];

     }
  }

错误是警告:fopen()[function.fopen]:php_network_getaddresses:getaddrinfo failed:没有这样的主机是已知的。在g:/

这里到底出了什么问题?

4 个答案:

答案 0 :(得分:0)

这里到底出了什么问题

  1. 未经许可获取某人的信息。如果网站愿意提供一页,它将提供RSS。
  2. “检查”不存在的域。

答案 1 :(得分:0)

在你尝试fopen之前:

$file2 = fopen($t_u, "r");

回显$t_u的值,并确保它是正确的。

答案 2 :(得分:0)

我有一个这个脚本的版本 - 这意味着你的数据可能是错误的。在尝试获取URL的内容之前,您可以在域上执行DNS查找。从本质上讲,你错过了一些错误检查:

<?php

$x = array('//yahoo.com', '//google.com', '//leenux.org.uk');
$i = 3;

for ($j=0;$j<$i;$j++) {
    if ($x[$j]!=''){
        $t_u = "http:".$x[$j];

        $content2 = file_get_contents($t_u); 

        if (preg_match("/\\<title\\>(.*)\\<\\/title\\>/", $content2, $matches)) {
            echo $matches[1];
        }
    }
}
?>

答案 3 :(得分:0)

我首先会检查此服务器上php.ini文件中allow_url_fopen的设置。