当前位置:首页 > PHP教程 > php应用 > 列表

php获取http状态码程序代码

发布:smiling 来源: PHP粉丝网  添加日期:2014-07-19 14:08:50 浏览: 评论:0 

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

  1. // 设置url 
  2. $url = 'http://www.phpfensi.com'
  3. function get_http_status_code($url) { 
  4.  if(emptyempty($url)) return false; 
  5.  $url = parse_url($url); 
  6.  $host = isset($url['host']) ? $url['host'] : ''
  7.  $port = isset($url['port']) ? $url['port'] : '80'
  8.  $path = isset($url['path']) ? $url['path'] : ''
  9.  $query = isset($url['query']) ? $url['query'] : ''
  10.  
  11.  
  12.  $request = "HEAD $path?$query HTTP/1.1rn" 
  13.            ."Host: $hostrn" 
  14.            ."Connection: closern" 
  15.            ."rn"
  16.  
  17.  $address = gethostbyname($host); 
  18.  $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); 
  19.  socket_connect($socket$address$port); 
  20.  
  21.  socket_write($socket$requeststrlen($request)); 
  22.  
  23.  $response = split(' ', socket_read($socket, 1024)); 
  24.  socket_close($socket); 
  25.  return  trim($response[1]); 
  26. echo get_http_status_code($url); 

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

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

extension=php_curl.dll

去掉前面的注释既可.

PHP实例代码如下:

  1. $curl = curl_init(); 
  2. $url=’http://www.phpfensi.com’; 
  3. curl_setopt($curl, CURLOPT_URL, $url); //设置URL 
  4. curl_setopt($curl, CURLOPT_HEADER, 1); //获取Header 
  5. curl_setopt($curl,CURLOPT_NOBODY,true); //Body就不要了吧,我们只是需要Head 
  6. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //数据存到成字符串吧,别给我直接输出到屏幕了 
  7. $data = curl_exec($curl); //开始执行啦~ 
  8. echo curl_getinfo($curl,CURLINFO_HTTP_CODE); //我知道HTTPSTAT码哦~ 
  9. curl_close($curl); //用完记得关掉他  

Tags: php获取 http状态码

分享到: