php获取http状态码程序代码

WBOY
リリース: 2016-05-25 16:44:08
オリジナル
3068 人が閲覧しました

经常需要判断文件是否可以访问,可以通过http状态码判别,200为正常访问,404为找不到该页面,代码如下:

<?php
// 设置url 
$url = &#39;http://www.phprm.com&#39;; 
function get_http_status_code($url) { 
 if(emptyempty($url)) return false; 
 $url = parse_url($url); 
 $host = isset($url[&#39;host&#39;]) ? $url[&#39;host&#39;] : &#39;&#39;; 
 $port = isset($url[&#39;port&#39;]) ? $url[&#39;port&#39;] : &#39;80&#39;; 
 $path = isset($url[&#39;path&#39;]) ? $url[&#39;path&#39;] : &#39;&#39;; 
 $query = isset($url[&#39;query&#39;]) ? $url[&#39;query&#39;] : &#39;&#39;; 
 
 
 $request = "HEAD $path?$query HTTP/1.1\r\n" 
   ."Host: $host\r\n" 
   ."Connection: close\r\n" 
   ."\r\n"; 
 
 $address = gethostbyname($host); 
 $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); 
 socket_connect($socket, $address, $port); 
 
 socket_write($socket, $request, strlen($request)); 
 
 $response = split(&#39; &#39;, socket_read($socket, 1024)); 
 socket_close($socket); 
 return  trim($response[1]); 
} 
echo get_http_status_code($url); 
?>
ログイン後にコピー

另一种获取http状态码的办法

使用curl需要在php.ini中设置启用才行 >< Windows的服务器中,打开php.ini,找到:

extension=php_curl.dll
ログイン後にコピー

去掉前面的注释既可.

PHP实例代码如下:

<?php
$curl = curl_init(); 
$url=&#39;http://www.phprm.com&#39;; 
curl_setopt($curl, CURLOPT_URL, $url); //设置URL 
curl_setopt($curl, CURLOPT_HEADER, 1); //获取Header 
curl_setopt($curl,CURLOPT_NOBODY,true); //Body就不要了吧,我们只是需要Head 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //数据存到成字符串吧,别给我直接输出到屏幕了 
$data = curl_exec($curl); //开始执行啦~ 
echo curl_getinfo($curl,CURLINFO_HTTP_CODE); //我知道HTTPSTAT码哦~ 
curl_close($curl); //用完记得关掉他  
?>
ログイン後にコピー


本文地址:

转载随意,但请附上文章地址:-)

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート