教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 php获取http状态码程序代码

php获取http状态码程序代码

发布时间:2016-10-26   编辑:jiaochengji.com
教程集为您提供php获取http状态码程序代码等资源,欢迎您收藏本站,我们将为您提供最新的php获取http状态码程序代码资源
本文章来介绍php获取http状态码程序代码,有需要了解的同学可参考。

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

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy6743')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy6743>

<?php
// 设置url
$url = 'http://www.jiaochengji.com';
function get_http_status_code($url) {
 if(empty($url)) return false;
 $url = parse_url($url);
 $host = isset($url['host']) ? $url['host'] : '';
 $port = isset($url['port']) ? $url['port'] : '80';
 $path = isset($url['path']) ? $url['path'] : '';
 $query = isset($url['query']) ? $url['query'] : '';


 $request = "HEAD $path?$query HTTP/1.1rn"
           ."Host: $hostrn"
           ."Connection: closern"
           ."rn";

 $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(' ', 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
去掉前面的注释既可 。

 

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy1263')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy1263>$curl = curl_init();
$url=’http://www.jiaochengji.com’;
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); //用完记得关掉他

一些状态代码

1xx:请求收到,继续处理 
2xx:操作成功收到,分析、接受 
3xx:完成此请求必须进一步处理 
4xx:请求包含一个错误语法或不能完成 
5xx:服务器执行一个完全有效请求失败 

100——客户必须继续发出请求 
101——客户要求服务器根据请求转换HTTP协议版本 

200——交易成功 
201——提示知道新文件的URL 
202——接受和处理、但处理未完成 
203——返回信息不确定或不完整 
204——请求收到,但返回信息为空 
205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件 
206——服务器已经完成了部分用户的GET请求 

300——请求的资源可在多处得到 
301——删除请求数据 
302——在其他地址发现了请求数据 
303——建议客户访问其他URL或访问方式 
304——客户端已经执行了GET,但文件未变化 
305——请求的资源必须从服务器指定的地址得到 
306——前一版本HTTP中使用的代码,现行版本中不再使用 
307——申明请求的资源临时性删除 

400——错误请求,如语法错误 
401——请求授权失败 
402——保留有效ChargeTo头响应 
403——请求不允许 
404——没有发现文件、查询或URl 
405——用户在Request-Line字段定义的方法不允许 
406——根据用户发送的Accept拖,请求资源不可访问 
407——类似401,用户必须首先在代理服务器上得到授权 
408——客户端没有在用户指定的饿时间内完成请求 
409——对当前资源状态,请求不能完成 
410——服务器上不再有此资源且无进一步的参考地址 
411——服务器拒绝用户定义的Content-Length属性请求 
412——一个或多个请求头字段在当前请求中错误 
413——请求的资源大于服务器允许的大小 
414——请求的资源URL长于服务器允许的长度 
415——请求资源不支持请求项目格式 
416——请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求 
也不包含If-Range请求头字段 
417——服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求 

500——服务器产生内部错误 
501——服务器不支持请求的函数 
502——服务器暂时不可用,有时是为了防止发生系统过载 
503——服务器过载或暂停维修 
504——关口过载,服务器使用另一个关口或服务来响应用户,等待时间设定值较长 
505——服务器不支持或拒绝支请求头中指定的HTTP版本 

您可能感兴趣的文章:
php打开其他网站获取状态码
ExtJS设置与获取radio控件的选取状态
php记录服务器负载、内存、cpu状态的代码
php获取计算机唯一标识信息(cpu,网卡,MAC地址)的代码
php获取linux服务器状态的代码
php伪静态如何获取地址栏url
php中使用proc/loadavg监控CPU的平均负载
php页面缓存的例子(减经cpu与mysql负担)
php检测远端文件是否存在的例子
PHP curl 获取响应的状态实例

[关闭]
~ ~