免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5536 | 回复: 12
打印 上一主题 下一主题

php打开远程网页失败。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-24 15:36 |只看该作者 |倒序浏览

  1.         $file="http://www.zhima.cc/game/xy28/index.asp";

  2.          if($file != ""){
  3.                 $fp=fopen($file,"r");
  4.          }
  5.         else return 0;
  6.         while($lineb=fgets($fp, 300)){
  7.                        
  8.                                echo $lineb;

  9.                                 if(($p=strstr($lineb,"FFFFCC"))!=NULL){
  10.                                                 $qi=$lineb;
  11.                                         echo 'dddddd<br>';
  12.                                 }
  13.         }

复制代码


打开这个网站读取网页的时候老是失败,如果把 $file修改成别的网站网页,就可以读取到,为什么会这样?怎么解决?

论坛徽章:
0
2 [报告]
发表于 2008-03-24 15:56 |只看该作者

回复 #1 zhonzn 的帖子



  1. <script>   
  2. if (self.location != top.location)top.location.href=self.location
  3. </script>
  4. <meta http-equiv=refresh content='1;url=/game/xy28/index.asp?'>

复制代码


该网页使用了refresh,所以网页读到之后又刷新了,我只想把页面内容读取下来分析,有没有办法实现?请懂得的朋友指点一下我,谢谢。

论坛徽章:
0
3 [报告]
发表于 2008-03-24 22:34 |只看该作者

回复 #2 zhonzn 的帖子

没有知道的人吗????

论坛徽章:
0
4 [报告]
发表于 2008-03-25 09:46 |只看该作者

回复 #1 zhonzn 的帖子

既然他设置了refresh,你又何必一定要一次读完
分段读取不是刚好!

论坛徽章:
0
5 [报告]
发表于 2008-03-25 11:47 |只看该作者

回复 #4 yuxiaqiao 的帖子

要怎样分段读取?能不能给点代码看看?实在不懂得操作了。

论坛徽章:
0
6 [报告]
发表于 2008-03-25 17:55 |只看该作者
常用的函数,参考一下吧



  1. function get_content($url)
  2. {
  3. for($m=0;$m<8 & empty($content);$m++)//防止网络故障,一次读取不到,采取多次读取页面的方法
  4. {
  5.   if(!strpos($url, '://')) return 'Invalid URI';
  6.   $content = '';
  7.   if(ini_get('allow_url_fopen'))
  8.   {
  9.    $content = file_get_contents($url);
  10.   }
  11.   elseif(function_exists('curl_init'))
  12.   {
  13.   $handle = curl_init();
  14.   curl_setopt($handle, CURLOPT_URL, $url);
  15.   curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 5);
  16.   curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1);
  17.   curl_setopt($handle, CURLOPT_FOLLOWLOCATION, 0);
  18.   $content = curl_exec($handle);
  19.   curl_close($handle);
  20.   }
  21.   elseif(function_exists('fsockopen'))
  22.   {
  23.   $urlinfo = parse_url($url);
  24.   $host = $urlinfo['host'];
  25.   $str = explode($host, $url);
  26.   $uri = $str[1];
  27.   unset($urlinfo, $str);
  28.   $content = '';
  29.   $fp = fsockopen($host, 80, $errno, $errstr, 30);
  30.   if(!$fp)
  31.   {
  32.    $content = 'Can Not Open Socket...';
  33.   }
  34.   else
  35.   {
  36.    $out = "GET $uri   HTTP/1.1\r\n";
  37.    $out.= "Host: $host \r\n";
  38.    $out.= "Accept: */*\r\n";
  39.    $out.= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n";
  40.    $out.= "Connection: Close\r\n\r\n";
  41.    fputs($fp, $out);
  42.    while (!feof($fp))
  43.    {
  44.     $content .= fgets($fp, 4069);
  45.    }
  46.    fclose($fp);
  47.   }
  48.   }
  49. }
  50. if(empty($content)) $content = 'Can Not Open Url, Please Check You Server ... <br/>For More Information, Please Visit www.3wsite.cn';
  51. return $content;
  52. }
复制代码

论坛徽章:
0
7 [报告]
发表于 2008-03-30 20:28 |只看该作者

回复 #6 hhxxttxs 的帖子

你好,你的函数用在别的网站可以使用,但是用在这个站点还是读取不到东西啊,否则你试验看看。

有没有朋友会的?告诉我啊,如果这个都做不到,对PHP真没有信心了。

论坛徽章:
0
8 [报告]
发表于 2008-04-06 23:18 |只看该作者
file_get_contents

论坛徽章:
0
9 [报告]
发表于 2008-04-07 09:00 |只看该作者
真正的主页是 http://www.zhima.cc/game/xy28/index.asp?
另外,这种网站一看就是骗钱的。

论坛徽章:
0
10 [报告]
发表于 2008-04-07 17:48 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP