php教程

get_headers获取不到http状态码解决方法

我的站长站 2023-03-29 人阅读

有一个项目需要检测网站HTTP状态码来判断,我的站长站使用get_headers函数检查状态,apache环境下状态为200,但用Nginx它给了我 301状态。

所以很明显get_headers在某些情况下不兼容,那么我们只能使用兼容性更高的curl 方法了,参考代码如下:

$url = 'https://www.wdzzz.com';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
var_dump($info);

我收到的 var_dump 输出:

array(26) { ["url"]=> string(61) "https://www.google.co.uk/?gws_rd=cr&ei=fIaOUsflOqnG0QXy74DYDg "["content_type"]=> string(24) "text/html; charset=UTF-8"[ "http_code"]=> int(200) ["header_size"]=> int(2462) ["request_size"]=> int(493) ["filetime"]=> int(-1) ["ssl_verify_result"]=> int(0) ["redirect_count"]=> int(2) ["total_time"]=> float(0.286363) ["namelookup_time"]=> float(7.1E-5) ["connect_time"] => float (0.011754)[“预传输时间”]=> float (0.082954)[“大小上传”]=> float (0)[“大小下载”]=> float (119772)[“速度下载”]=> float (418252) ["speed_upload"]=> float(0) ["download_content_length"]=> float(262) ["upload_content_length"]=> float(0) ["starttransfer_time"]=> float(0.156201) ["redirect_time"]= > float (0.076769)[“certinfo”]=>数组(0){}[“primary_ip”]=>字符串(14)“173.194.34.183”[“primary_port”]=> int(443)[“local_ip”] => string(12) "192.168.0.15"["local_port"]=> int(54606) ["redirect_url"]=> string(0) ""}

完美解决了Nginx不支持get_headers函数。

相关推荐
  • get_headers
  • HTTP状态码
  • header头
  • get_headers获取不到http状态码解决方法

    有一个项目需要检测网站http状态码来判断,我的站长站使用get_headers函数检查状态,apache环境下状态为200,但用Nginx它给了我 301状态。所以很明显get_headers在某些情况下不兼容,那么我们只能使用兼容性更高的curl 方法了,参考代码如下:$url = 'https...

    php教程 69 1年前
  • 利用get_headers函数判断链接是否有效或失效

    PHP判断链接是否有效或失效的方法代码,get_headers() 是PHP系统级函数,他返回一个包含有服务器响应一个 HTTP 请求所发送的标头的数组。如果失败则返回 FALSE 并发出一条 E_WARNING 级别的错误信息(可用来判断远程文件是否存在)。函数定义array get_he...

    php教程 126 4年前
  • get_headers函数判断链接是否有效

    get_headers函数get_headers() 是PHP系统级函数,get_headers函数可以返回服务器响应HTTP标头数组。如果失败则回到 FALSE,并发出一条 E_WARNING 级别的错误信息,我们可以利用这点去判断远程文件是否存在。函数定义array get_headers ( string $url [, i...

    php教程 17 1年前
  • HTTP状态码超详细大全

    1xx(临时响应)代码说明:表示临时响应并需要请求者继续执行操作的状态代码。http状态码 100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。http状态码 101 (切换协议) 请求者已要求服务器切换协议,服务器已确...

    经验分享 43 1年前
  • HTTP状态码详解大全

    100 继续发送请求这个状态码是告诉客户端应该继续发送请求,这个临时响应是用来通知客户端的,部分的请求服务器已经接受,但是客户端应继续发送求请求的剩余部分,如果请求已经完成,就忽略这个响应,而且服务器会在请求完成后向客户发送一个最终的结果200 请求...

    经验分享 93 2年前
  • 如何让你的404页面变的更加实用

    随着网站的不断发展,网站本身的架构会不断变化,页面和内容会在重设计过程中不断调整,被重新定向。网站本身的优化,往往不可避免地让一部分内容不再那么容易被用户找到,当用户打开的时候,就是 404 页面了。绝大多数用户害怕看到这个页面,这意味着这个链接所...

    网站优化 275 6年前
  • nginx获取header头信息教程

    在PHP中getallheaders可以直接获取到header头信息,但getallheaders在nginx环境中无法使用,所以在nginx就需要用其他的方法了。分享一个我的站长站自己的编写的函数,代码如下:function NginxGetAllHeaders(){//获取请求头 $headers = []; foreach (...

    php教程 90 1年前
  • 利用get_headers函数判断链接是否有效或失效

    PHP判断链接是否有效或失效的方法代码,get_headers() 是PHP系统级函数,他返回一个包含有服务器响应一个 HTTP 请求所发送的标头的数组。如果失败则返回 FALSE 并发出一条 E_WARNING 级别的错误信息(可用来判断远程文件是否存在)。函数定义array get_he...

    php教程 126 4年前
  • 帝国CMS报错Warning: Cannot modify header information

    今天偶然进入帝国CMS网站后台发现出现了:Warning:Cannot modify header information - headers already sent by (output started at /htdocs/e/config/config.php:1) in /htdocs/e/class/connect.php on line 189 --phpfensi.com 错误。因为这个网站...

    帝国cms教程 52 1年前
最新更新