Home >Backend Development >PHP Tutorial >php get_headers函数的用法及判断网站是否可以打开

php get_headers函数的用法及判断网站是否可以打开

WBOY
WBOYOriginal
2016-06-20 13:02:491217browse

get_headers() 是PHP系统级函数,他返回一个包含有服务器响应一个 HTTP 请求所发送的标头的数组。如果失败则返回 FALSE 并发出一条 E_WARNING 级别的错误信息(可用来判断远程文件是否存在)。

函数定义array get_headers ( string $url [, int $format = 0 ] )参数url 目标 URLformat 如果将可选的 format 参数设为 1,则 get_headers() 会解析相应的信息并设定数组的键名。

示例

<p><?php</p>$url='http://www.scutephp.com';<br />print_r(get_headers($url));<br />print_r(get_headers($url,1));<br /><p>?></p>

以上例程的输出类似于:

Array

(
    [0] => HTTP/1.1 200 OK
    [1] => Date: Sat, 29 May 2004 12:28:13 GMT
    [2] => Server: Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
    [4] => ETag: "3f80f-1b6-3e1cb03b"
    [5] => Accept-Ranges: bytes
    [6] => Content-Length: 438
    [7] => Connection: close
    [8] => Content-Type: text/html

)

Array

(
    [0] => HTTP/1.1 200 OK
    [Date] => Sat, 29 May 2004 12:28:14 GMT
    [Server] => Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT
    [ETag] => "3f80f-1b6-3e1cb03b"
    [Accept-Ranges] => bytes
    [Content-Length] => 438
    [Connection] => close
    [Content-Type] => text/html

)

php 模拟get_headers函数。

具体代码如下:

<?php<br />if(!function_exists('get_headers')){<br /> function get_headers($url,$format=0){<br /> $url=parse_url($url);<br /> $end="rnrn";<br /> $fp=fsockopen($url['host'],(empty($url['port'])?80:$url['port']),$errno,$errstr,30);<br /> if($fp){<br /> $out="GET / HTTP/1.1rn";<br /> $out.="Host: ".$url['host']."rn";<br /> $out.="Connection: Closernrn";<br /> $var='';<br /> fwrite($fp,$out);<br /> while(!feof($fp)){<br /> $var.=fgets($fp,1280);<br /> if(strpos($var,$end))<br /> break;<br /> }<br /> fclose($fp);<br /> $var=preg_replace("/rnrn.*$/",'',$var);<br /> $var=explode("rn",$var);<br /> if($format){<br /> foreach($var as $i){<br /> if(preg_match('/^([a-zA-Z -]+): +(.*)$/',$i,$parts))<br /> $v[$parts[1]]=$parts[2];<br /> }<br /> return $v;<br /> }else{<br /> return $var;<br /> }<br /> }<br /> }<br />}<br />echo '<pre class="brush:php;toolbar:false">';<br />print_r(get_headers('http://www.scutephp.com/'));

相关文章:PHP + AJAX 多进程批量 Ping 工具


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn