DDR爱好者之家 Design By 杰米
获取URL信息的类
使用这个类,你能获得URL的如下信息:
- Host
- Path
- Statuscode (eg. 404,200, ...)
- HTTP Version
- Server
- Content Type
- Date
- The whole header string of the URL
复制代码 代码如下:
<?
/**
* Class for getting information about URL's
* @author Sven Wagener <[email]sven.wagener@intertribe.de[/email]>
* @copyright Intertribe limited
* @PHP中文社区收集整理 [url]www.phpNet.cn[/url]
* @include Funktion:_include_
*/
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";
/**
* Constructor of class url
* @param string $url the complete url
* @desc Constructor of class url
*/
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();
}
/**
* Returns the whole url
* @return string $url the whole url
* @desc Returns the whole url
*/
function get_url(){
return $this->url;
}
/**
* Returns the host of the url
* @return string $url_host the host of the url
* @desc Returns the host of the url
*/
function get_url_host(){
return $this->url_host;
}
/**
* Returns the path of the url
* @return string $url_path the path of the url
* @desc Returns the path of the url
*/
function get_url_path(){
return $this->url_path;
}
/**
* Returns the status code of the url
* @return string $status_code the status code
* @desc Returns the status code of the url
*/
function get_statuscode(){
return $this->code;
}
/**
* Returns the status code description of the url
* @return string $status_code_desc the status code description
* @desc Returns the status code description of the url
*/
function get_statuscode_desc(){
return $this->code_desc;
}
/**
* Returns the http version of the url by the returned headers of the server
* @return string $http_version the http version
* @desc Returns the http version of the url by the returned headers of the server
*/
function get_info_http_version(){
return $this->http_version;
}
/**
* Returns the server type of the url's host by the returned headers of the server
* @return string header_array['Server'] the server type
* @desc Returns the server type of the url's host by the returned headers of the server
*/
function get_info_server(){
return $this->header_array['Server'];
}
/**
* Returns the date of the url's host by the returned headers of the server
* @return string $header_array['Date'] the date
* @desc Returns the date of the url's host by the returned headers of the server
*/
function get_info_date(){
return $this->header_array['Date'];
}
/*
function get_info_content_length(){
return $this->header_array['Content-Length'];
}
*/
/**
* Returns the content type by the returned headers of the server
* @return string header_array['Content-Type'] the content type
* @desc Returns the content type by the returned headers of the server
*/
function get_info_content_type(){
return $this->header_array['Content-Type'];
}
/**
* Returns the content of the url without the headers
* @return string $content the content
* @desc Returns the content of the url without the headers
*/
function get_content(){
// Get a web page into a string
$string = implode ('', file ($this->url));
return $string;
}
/**
* Returns the whole header of url without content
* @return string $header the header
* @desc Returns the whole header of url without content
*/
function get_header_stream(){
return $this->header_stream;
}
/**
* Returns the whole headers of the url in an array
* @return array $header_array the headers in an array
* @desc Returns the whole headers of the url in an array
*/
function get_headers(){
return $this->header_array;
}
/**
* Refreshes the header information
* @desc Refreshes the header information
*/
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<count($splitted_stream);$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];
}
}
/**
* Sets the timeout for getting header data from server
* @param int $seconds time for timeout in seconds
* @desc Sets the timeout for getting header data from server
*/
function set_timeout($seconds){
$this->timeout=$seconds;
}
}
?>
复制代码 代码如下:
<?php
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: <b>".$url->get_url()."</b><br>n";
echo "URL Host: ".$url->get_url_host()."<br>n";
echo "URL Path: ".$url->get_url_path()."<br>n<br>n";
echo "Statuscode: ".$url->get_statuscode()."<br>n";
echo "Statuscode description: ".$url->get_statuscode_desc()."<br>n";
echo "HTTP Version: ".$url->get_info_http_version()."<br>n";
echo "Server: ".$url->get_info_server()."<br>n";
echo "Content Type: ".$url->get_info_content_type()."<br>n";
echo "Date: ".$url->get_info_date()."<br>n<br>n";
echo "WHOLE HEADERS:<br>n";
echo $url->get_header_stream();
?>
使用这个类,你能获得URL的如下信息:
- Host
- Path
- Statuscode (eg. 404,200, ...)
- HTTP Version
- Server
- Content Type
- Date
- The whole header string of the URL
复制代码 代码如下:
<?
/**
* Class for getting information about URL's
* @author Sven Wagener <[email]sven.wagener@intertribe.de[/email]>
* @copyright Intertribe limited
* @PHP中文社区收集整理 [url]www.phpNet.cn[/url]
* @include Funktion:_include_
*/
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";
/**
* Constructor of class url
* @param string $url the complete url
* @desc Constructor of class url
*/
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();
}
/**
* Returns the whole url
* @return string $url the whole url
* @desc Returns the whole url
*/
function get_url(){
return $this->url;
}
/**
* Returns the host of the url
* @return string $url_host the host of the url
* @desc Returns the host of the url
*/
function get_url_host(){
return $this->url_host;
}
/**
* Returns the path of the url
* @return string $url_path the path of the url
* @desc Returns the path of the url
*/
function get_url_path(){
return $this->url_path;
}
/**
* Returns the status code of the url
* @return string $status_code the status code
* @desc Returns the status code of the url
*/
function get_statuscode(){
return $this->code;
}
/**
* Returns the status code description of the url
* @return string $status_code_desc the status code description
* @desc Returns the status code description of the url
*/
function get_statuscode_desc(){
return $this->code_desc;
}
/**
* Returns the http version of the url by the returned headers of the server
* @return string $http_version the http version
* @desc Returns the http version of the url by the returned headers of the server
*/
function get_info_http_version(){
return $this->http_version;
}
/**
* Returns the server type of the url's host by the returned headers of the server
* @return string header_array['Server'] the server type
* @desc Returns the server type of the url's host by the returned headers of the server
*/
function get_info_server(){
return $this->header_array['Server'];
}
/**
* Returns the date of the url's host by the returned headers of the server
* @return string $header_array['Date'] the date
* @desc Returns the date of the url's host by the returned headers of the server
*/
function get_info_date(){
return $this->header_array['Date'];
}
/*
function get_info_content_length(){
return $this->header_array['Content-Length'];
}
*/
/**
* Returns the content type by the returned headers of the server
* @return string header_array['Content-Type'] the content type
* @desc Returns the content type by the returned headers of the server
*/
function get_info_content_type(){
return $this->header_array['Content-Type'];
}
/**
* Returns the content of the url without the headers
* @return string $content the content
* @desc Returns the content of the url without the headers
*/
function get_content(){
// Get a web page into a string
$string = implode ('', file ($this->url));
return $string;
}
/**
* Returns the whole header of url without content
* @return string $header the header
* @desc Returns the whole header of url without content
*/
function get_header_stream(){
return $this->header_stream;
}
/**
* Returns the whole headers of the url in an array
* @return array $header_array the headers in an array
* @desc Returns the whole headers of the url in an array
*/
function get_headers(){
return $this->header_array;
}
/**
* Refreshes the header information
* @desc Refreshes the header information
*/
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<count($splitted_stream);$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];
}
}
/**
* Sets the timeout for getting header data from server
* @param int $seconds time for timeout in seconds
* @desc Sets the timeout for getting header data from server
*/
function set_timeout($seconds){
$this->timeout=$seconds;
}
}
?>
复制代码 代码如下:
<?php
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: <b>".$url->get_url()."</b><br>n";
echo "URL Host: ".$url->get_url_host()."<br>n";
echo "URL Path: ".$url->get_url_path()."<br>n<br>n";
echo "Statuscode: ".$url->get_statuscode()."<br>n";
echo "Statuscode description: ".$url->get_statuscode_desc()."<br>n";
echo "HTTP Version: ".$url->get_info_http_version()."<br>n";
echo "Server: ".$url->get_info_server()."<br>n";
echo "Content Type: ".$url->get_info_content_type()."<br>n";
echo "Date: ".$url->get_info_date()."<br>n<br>n";
echo "WHOLE HEADERS:<br>n";
echo $url->get_header_stream();
?>
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
更新日志
2024年11月25日
2024年11月25日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]