PHP get_headers() 生成头文件

标签 php html curl

我正在努力获取 URL 列表的 header 响应代码。我需要输出像 HTTP/1.1 200 OK

使用 cURL - 我使用了这个命令 curl -s -I https://www.pnc.com | grep HTTP (或)curl -I https://www.pnc.com 2>/dev/null |头-n 1。而且,我得到的输出为 HTTP/1.1 200 OK

使用 PHP - 我使用 get_headers() 命令在 PHP 中执行相同的操作。我得到的输出为 HTTP/1.1 301 Moved Permanently

这是我使用的代码。

$line = "https://www.pnc.com";
$myheader = get_headers($line,1);
echo "$myheader[0]";

运行此命令后,我得到的输出为 HTTP/1.1 301 Moved Permanently。有人可以提出任何建议吗?

最佳答案

您使用 curl 的命令行调用遵循 301 重定向,然后返回重定向页面的 header 。对于使用 PHP 中的 curl 的更可靠的方法,我建议您在此处使用我的答案的变体:

Can PHP cURL retrieve response headers AND body in a single request?

如果您希望像 curl 在命令行上所做的那样透明地遵循重定向,请设置 curl 选项 CURLOPT_FOLLOWLOCATION,例如:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

由于对本体不感兴趣,所以关闭回传选项,即:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);

如果您希望执行 HEAD 请求,还可以设置以下选项:

curl_setopt($ch, CURLOPT_NOBODY, true);

关于PHP get_headers() 生成头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52415237/

相关文章:

javascript - jQuery 选择第一项

函数外的 JavaScript 变量不保留值

带有 cURL 的 PHP7、HTTP2

php - Laravel Eloquent 模型重写静态启动方法

php - 从方法访问 mySQLi 数据库对象

php - Wordpress – 在阅读更多内容之前显示页面内容,无需使用循环

javascript - 获取 DIV 的实际大小,包括溢出(元素超出父边界)

php - 如何从 php/mysql 的日期时间中减去日期?

ios - swift ios 使用 alamofire 将 curl 转换为 swift curl

php - 使用 cURL 请求 instagram api 访问 token