1. 云栖社区>
  2. PHP教程>
  3. 正文

对于未扩展file_get_content的服务器的自写类的解决方法

作者:用户 来源:互联网 时间:2017-12-01 13:34:17

服务器file扩展方法get解决content

对于未扩展file_get_content的服务器的自写类的解决方法 - 摘要: 本文讲的是对于未扩展file_get_content的服务器的自写类的解决方法, 面对一些因为各种各样原因而未扩展file_get_content功能的服务器。是不是有些头疼。下面给大家贴出一个类,可以解决这个问题。调用方法跟file_get_content一样。 可以如下调用: //$result = HttpUti

面对一些因为各种各样原因而未扩展file_get_content功能的服务器。是不是有些头疼。下面给大家贴出一个类,可以解决这个问题。调用方法跟file_get_content一样。


可以如下调用:


//$result = HttpUtil::DoGet('http://www.baidu.com');
//echo($result);


**************************以下为code***********************************************


<?phpclass HttpUtil{


 public static function DoGet($url){  $url2 = parse_url($url);  //var_dump($url2);  $url2["path"] = (!isset($url2["path"])  || $url2["path"] ==""?"/": $url2["path"]);  $url2["port"] = (!isset($url2["port"]) || $url2["port"] ==""? 80 : $url2["port"]);  $host_ip = @gethostbyname($url2["host"]);  $fsock_timeout = 2;  //2 second  if(($fsock = fsockopen($host_ip, $url2['port'], $errno, $errstr, $fsock_timeout)) < 0){   return false;  }  $request =  $url2["path"] .(isset($url2["query"]) ?"?".$url2["query"] :"");  $in  ="GET". $request ."HTTP/1.0rn";  $in .="Accept: */*rn";  $in .="User-Agent: Payb-Agentrn";  $in .="Host:". $url2["host"] ."rn";  $in .="Connection: Closernrn";  if([email protected]($fsock, $in, strlen($in))){   fclose($fsock);   return false;  }  return self::GetHttpContent($fsock); }


 public static function GetHttpContent($fsock=null) {  $out = null;  while($buff = @fgets($fsock, 2048)){   $out .= $buff;  }  fclose($fsock);  $pos = strpos($out,"rnrn");  $head = substr($out, 0, $pos);    //http head  $status = substr($head, 0, strpos($head,"rn"));    //http status line  $body = substr($out, $pos + 4, strlen($out) - ($pos + 4));//page body  if(preg_match("/^HTTP/d.ds([d]+)s.*$/", $status, $matches)){   if(intval($matches[1]) / 100 == 2){    return $body;    }else{    return false;   }  }else{   return false;  } }


}


?>


以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索服务器 , file , 扩展 , 方法 , get , 解决 , content ,以便于您获取更多的相关知识。

弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

现在注册,免费体验40+云产品,及域名优惠!

云服务器9.9元/月,大学必备