用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

php获取http状态码程序代码

时间:2015-01-23  来源:西部数据  作者:西部数据

经常需要判断文件是否可以访问,可以通过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); //用完记得关掉他  
来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
栏目更新
栏目热门