代码:<?php
function getFile($url) 

    if($f=@fopen("$url","r")) 
    { 
        while(!@feof($f)) 
        { 
            $s.=@fgets($f); 
        } 
        @fclose($f);
        return $s; 
    } else {
return false;
}

$aaa = getFile("http://www.6rooms.com");
print_r($aaa);exit;
?>

解决方案 »

  1.   

    如果楼主是读取6rooms的页面,需要注意一个问题, 6rooms对user_agent有过滤, 当非搜索引擎的主机短时间内对其页面请求过多时会被拒绝!约半个小时能够恢复, 建议修改PHP的USER_AGENT,改成baiduspider即可避免拒绝了~~~
      

  2.   

    还有一个情况,如果你使用的是http的请求,如果是动态的页面,你怎么能够得到东西?还是换成其他的读取方式吧
      

  3.   

    使用CURL怎么个读取方式?能不能简单介绍一下,多谢
      

  4.   

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $samUrl);
    curl_setopt($ch, CURLOPT_NOBODY, 1);
    curl_exec($ch);
    curl_close($ch);具体看看php手册。
    另外fgets读不到远程url,可能是php.ini中allow_url_fopen没打开。具体参照手册上:
    如果 PHP 认为 filename 指定的是一个已注册的协议,而该协议被注册为一个网络 URL,PHP 将检查并确认 allow_url_fopen 已被激活。如果关闭了,PHP 将发出一个警告,而 fopen 的调用则失败。
      

  5.   

    6rooms可能判读了ua或者cookie什么的
      

  6.   

    failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden
      

  7.   

    我换了个空间之后可以读取了,连续读取了大概70个页面之后就不行了,变得很慢,然后过4、50分钟之后才能继续读取,看来他们是过滤了user_agent。user_agent好像自由php4.3之后的版本才能使用,现在这个可以读取的服务器上使用的是4.2.3,有点棘手。。