Home  >  Article  >  php教程  >  PHP implementation code to obtain the HTTP status code of the access page

PHP implementation code to obtain the HTTP status code of the access page

高洛峰
高洛峰Original
2016-12-26 14:04:221529browse

Stop talking nonsense and go straight to the code

Core code:

/**
 * 获取远程URL的HTTP状态
 *
 * @version 0.0.1
 * @Author Chenjl *
 * @param string $url    远程URL
 * @param string $data   ture[返回HTTP状态数组] | false[返回状态数值]
 *
 * @return mixed
 */
function getHeaders($url,$data=FALSE){
  $_headers = get_headers($url,1);
  if( !$data ){return $_headers;}
  $curl = curl_init();
  curl_setopt($curl,CURLOPT_URL,$url);//获取内容url
  curl_setopt($curl,CURLOPT_HEADER,1);//获取http头信息
  curl_setopt($curl,CURLOPT_NOBODY,1);//不返回html的body信息
  curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);//返回数据流,不直接输出
  curl_setopt($curl,CURLOPT_TIMEOUT,30); //超时时长,单位秒
  curl_exec($curl);
  $rtn= curl_getinfo($curl,CURLINFO_HTTP_CODE);
  curl_close($curl);
  return $rtn;
}

Zhufeng has two ways to obtain the above code Make an integration to facilitate the needs of different HTTP status acquisition scenarios;

Return results:

# 调用案例1:getHeaders('http://www.php.cn\/\',true);
# 返回结果:200 // 直接返回HTTP状态码
  
# 调用案例2:getHeaders('http://www.php.cn',false);
# 返回结果:
/*
array(10) { 
[0]=> 
string(15) "HTTP/1.1 200 OK" 
["Server"]=> 
string(5) "nginx" 
["Date"]=> 
string(29) "Mon, 04 Jul 2016 06:21:35 GMT" 
["Content-Type"]=> 
string(9) "text/html" 
["Content-Length"]=> 
string(5) "26898" 
["Last-Modified"]=> 
string(29) "Mon, 04 Jul 2016 06:16:00 GMT" 
["Connection"]=> 
string(5) "close" 
["Vary"]=> 
string(15) "Accept-Encoding" 
["ETag"]=> 
string(15) ""5779ff20-6912"" 
["Accept-Ranges"]=> 
string(5) "bytes" 
} 
*/

More PHP obtains the HTTP status code of the access page For articles related to the implementation code, please pay attention to the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn