欢迎光临 - 我的站长站,本站所有资源仅供学习与参考,禁止用于商业用途或从事违法行为!

php教程

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

php教程 我的站长站 2023-03-29 共82人阅读

有一个项目需要检测网站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教程 82 1年前
  • 利用get_headers函数判断链接是否有效或失效

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

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

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

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

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

    经验分享 47 2年前
  • HTTP状态码详解大全

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

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

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

    网站优化 280 7年前
  • phpcms如何将已删除的内容http状态码设置为404

    截止目前改版已经持续了两个半月,虽然百度说跳转关系至少要保持三个月,但我的关键词权重已转移完成,新站流量也很稳定,再加之原网站使用的cdn是360网站卫士的,动不动改版规则验证失效真是够头疼。所以,我决定删除改版规则,解除跳转关系,提交死链,这就需要把ph...

    phpcms教程 149 5年前
  • phpcms如何将访问提示“您要查看的信息不存在或者还未通过审批!”的动态页面设置为伪404

    phpcms网站动态内容页删除后再次访问提示“您要查看的信息不存在或者还未通过审批!”,如果这个页面已被收录,还有关键词来源的ip,那么最好把这个页面设置为伪404,防止流量流失和跳出率增高(真404即http状态码是404的设置方法访问:[xxid]21,613[/xxid]。具体...

    phpcms教程 154 5年前
  • nginx获取header头信息教程

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

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

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

    php教程 132 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教程 65 1年前
  • PHP常用header()函数代码大全

    在php的开发中,我们常常需要使用到header函数头来进行做标记header() 函数向客户端发送原始的 HTTP 报头。常用header设置列表如下:header('HTTP/1.1 200 OK'); // ok 正常访问header('HTTP/1.1 404 Not Found'); //通知浏览器 页面不...

    php教程 86 4年前
  • 帝国cms报错Cannot modify header information

    今天我的站长站在网上找到一款帝国模板准备测试分享大家,在恢复数据库时报错了Cannot modify header information...的错误,错误如下:Warning: Cannot modify header information – headers already sent by (output started at /www/web/xueerxingCOM...

    帝国cms教程 62 2年前