栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

一个用php实现的获取URL信息的类

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一个用php实现的获取URL信息的类

获取URL信息的类

使用这个类,你能获得URL的如下信息:

- Host 
- Path 
- Statuscode (eg. 404,200, ...) 
- HTTP Version 
- Server 
- Content Type 
- Date 
- The whole header string of the URL
复制代码 代码如下:

class url{

  var $url="";
  var $url_host;
  var $url_path;
  var $file="";

  var $code="";
  var $code_desc="";
  var $http_version=""; // Variable for HTTP version

  var $header_stream;
  var $header_array;

  var $timeout="1";

  
  function url($url){
    $this->url=$url;

    $url_array=parse_url($this->url);
    $this->url_host=$url_array['host'];
    $this->url_path=$url_array['path'];

    if($this->url_path==""){
            $this->url_path="/";
    }

    $this->refresh_headerinfo();
  }

  
  function get_url(){
          return $this->url;
  }

  
  function get_url_host(){
    return $this->url_host;
  }

  
  function get_url_path(){
    return $this->url_path;
  }

  
  function get_statuscode(){
    return $this->code;
  }

  
  function get_statuscode_desc(){
    return $this->code_desc;
  }

  
  function get_info_http_version(){
    return $this->http_version;
  }

  
  function get_info_server(){
    return $this->header_array['Server'];
  }

  
  function get_info_date(){
    return $this->header_array['Date'];
  }

  

  
  function get_info_content_type(){
    return $this->header_array['Content-Type'];
  }

  
  function get_content(){
    // Get a web page into a string
    $string = implode ('', file ($this->url));
    return $string;
  }

  
  function get_header_stream(){
    return $this->header_stream;
  }

  
  function get_headers(){
    return $this->header_array;
  }

  
  function refresh_headerinfo(){
    // Open socket for connection via port 80 to put headers
    $fp = fsockopen ($this->url_host, 80, $errno, $errstr, 30);
    if (!$fp) {
      // echo "$errstr ($errno)";
      if($errno==0){
              $errstr="Server Not Found";
      }
      $this->code=$errno;
      $this->code_desc=$errstr;
    } else {

      $put_string="GET ".$this->url_path." HTTP/1.0rnHost: ".$this->url_host."rnrn";
      fputs ($fp, $put_string);
      @socket_set_timeout($fp,$this->timeout);

      $stream="";
      $this->header_array="";
      $header_end=false;

      // Getting header string and creating header array
      $i=0;
      while (!feof($fp) && !$header_end) {
        $line=fgets($fp,128);
        if(strlen($line)==2){
          $header_end=true;
        }else{
          if($i==0){
            $line1=$line;
          }
          $stream.=$line;
          $splitted_line=split(":",$line);
          $this->header_array[$splitted_line[0]]=$splitted_line[1];
          $i++;
        }
      }
      fclose ($fp);

      $this->header_stream=$stream;

      $splitted_stream=split(" ",$line1);

      // Getting status code and description of the URL
      $this->code=$splitted_stream[1];
      $this->code_desc=$splitted_stream[2];
      if(count($splitted_stream)>3){
        for($i=3;$i          $this->code_desc.=" ".$splitted_stream[$i];
        }
      }
      // Cleaning up for n and r
      $this->code_desc=preg_replace("[n]","",$this->code_desc);
      $this->code_desc=preg_replace("[r]","",$this->code_desc);

      // Getting Http Version
      $http_array=split("/",$splitted_stream[0]);
      $this->http_version=$http_array[1];
      }
  }

  
  function set_timeout($seconds){
    $this->timeout=$seconds;
  }
}
?>

复制代码 代码如下:
include("url.class.php");
$url=new url("[url]http://www.phpNet.cn/[/url]");

echo $url->get_header_stream();
$headers=$url->get_headers();

echo $headers['Server'];

echo $url->get_content();
echo "URL: ".$url->get_url()."
n";
echo "URL Host: ".$url->get_url_host()."
n";
echo "URL Path: ".$url->get_url_path()."
n
n";

echo "Statuscode: ".$url->get_statuscode()."
n";
echo "Statuscode description: ".$url->get_statuscode_desc()."
n";
echo "HTTP Version: ".$url->get_info_http_version()."
n";
echo "Server: ".$url->get_info_server()."
n";
echo "Content Type: ".$url->get_info_content_type()."
n";
echo "Date: ".$url->get_info_date()."
n
n";

echo "WHOLE HEADERS:
n";
echo $url->get_header_stream();
?>

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/53696.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号