php获取http状态码程序代码

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

 代码如下 复制代码

<?php
// 设置url
$url = 'http://www.111cn.net';
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
去掉前面的注释既可 。

 

 代码如下 复制代码
$curl = curl_init();
$url=’http://www.111cn.net’;
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版本 

时间: 2024-11-10 00:59:23

php获取http状态码程序代码的相关文章

开源项目-android volley获取http状态码的方法

问题描述 android volley获取http状态码的方法 本人android新手一个,在开发过程中使用的现在流行的volley开源项目,其中的需求中需要根据状态码进行操作.拜托了! 解决方案 Android_HTTP状态码介绍[Android笔记]Http状态码android http code响应码 状态码

smarty获取url参数传值程序代码

smarty获取url参数传值程序代码 <head> <meta http-equiv="content-type" content="text/html; charset=gb2312" /> <title>smarty获取url参数传值程序代码</title> </head> <body> <!--{$smarty.get.url}--> </body> </h

dedecms页面如何获取会员状态的实例代码_javascript技巧

dedecms页面如何获取会员状态的实例代码 前几天做了一个企业网站,导航栏增加了会员信息,如: 已登陆:显示:欢迎<会员名> 未登陆 显示: 请登录 代码如下: 复制代码 代码如下: {dede:php} require_once(DEDEMEMBER."/config.php"); $uid = $cfg_ml->M_LoginID; if(!$uid){ echo ' <div><a class="login-button"

WordPress获取文章内容摘要程序代码

这个是我自己写的获取文章内容摘要程序  代码如下 复制代码 <?php  global $more;    $more = 1;    //1=全文 0=摘要   $my_content = strip_tags(get_the_excerpt(), $post->post_content); //获得文章   $my_content = str_replace(array("rn", "r", "n", " ",

python中使用urllib2获取http请求状态码的代码例子_python

采集内容常需要得到网页返回的验证码做进一步处理 下面代码是用python写的用来获取网页http状态码的脚本 #!/usr/bin/python # -*- coding: utf-8 -*- #encoding=utf-8 #Filename:states_code.py import urllib2 url = 'http://www.jb51.net/' response = None try: response = urllib2.urlopen(url,timeout=5) excep

linux中shell curl命令获取http状态码

通过curl的-w参数我们可以自定义curl的输出,%{http_code}代表http状态码  代码如下 复制代码 # curl -I -m 10 -o /dev/null -s -w %{http_code}  www.111cn.net 上面的输出是不含换行的,如果需要换行的话,加上\n  代码如下 复制代码 # curl -I -m 10 -o /dev/null -s -w %{http_code}  www.111cn.net 200# curl -I -m 10 -o /dev/n

php中获取随机数组列表程序代码

贴一段代码,在php中获取随机数组 不用多说,直接贴代码,php中的array_rand很变态,突破了正常人的理解,繁琐 例1  代码如下 复制代码 function create_random_ids( $min,$max,$limited ) {     $_base_ids = range($min,$max);     $_temp_key = array_rand ($_base_ids,min(count($_base_ids),$limited+10));     //拼接    

PHP中获取内存使用情况程序代码

cPHP内置函数memory_get_usage()能返回当前分配给PHP脚本的内存量,单位是字节(byte).在WEB实际开发中,这些函数非常有用,我们可以使用它来调试PHP代码性能. memory_get_usage()函数返回内存使用量,memory_get_peak_usage()函数返回内存使用峰值,getrusage()返回CUP使用情况.但有一点请注意,在这些函数需要在Linux上运行. 下面我们来看一个实例:    代码如下 复制代码 echo '开始内存:'.memory_ge

PHP获取IP的地理位置程序代码

用php file_get_contents 获取ip地址后如何获取地理位置,看下下面代码: 使用file_get_contents和fopen必须空间开启allow_url_fopen.方法:编辑php.ini,设置allow_url_fopen = On,allow_url_fopen关闭时fopen和file_get_contents都不能打开远程文件. 例子  代码如下 复制代码 function get_ip_place() {     $ip=file_get_contents("h