php 0还是超时,php的fsockopen超时的问题

今天有人问到file_get_contents在使用的时候出现failed to open stream: HTTP request failed!的错误,因为我平时都不怎么使用这个东西,但是我知道file_get_contents在获取远程文件的时候总是有那么一些力不从心,所以立马想到使用fsockopen专业点,但是也没怎么使用过这个函数,于是网上找到这么段代码:$url = "roll.news.sina.com.cn";

$fp = fsockopen($url,80,$errno,$errstr,20);

if(!$fp){

echo "$errno : $errstr";

}else{

$out = "GET /news/gnxw/zs-pl/index_1.shtml HTTP/1.1/r/n";

$out .= "Host: roll.news.sina.com.cn/r/n";

$out .= "Connection: Close/r/n/r/n";

$out .= "Keep-Alive: 300/r/n";

$out .= "Connection: keep-alive/r/n";

fputs($fp, $out);

//获取fsockopen的全部内容赋值到$file

$file = '';

while(!feof($fp)) {

$file .= fgets($fp,128);

}

fclose($fp);用来调试了半天,总是出现代码执行超时的问题,后来找了好久,终于找到有人遇到一个问题,原来是这段代码的\r\n的问题。

看上面代码是不是所有地方都是/r/n,这个/是反的。

别人的日志地址在:http://www.etang.info/php-it/fsockopen-timeout.html

同时还要注意,\r\n和\r\n\r\n,前者同样会超时。

------------正 文 已 结 束, 感 谢 您 的 阅 读 (折雨的天空)--------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值