【发布时间】:2012-11-16 08:03:20
【问题描述】:
我想从文件中获取标题。 但 CURL 返回值与 get_headers 不同。
不知道为什么。 结果如下:
使用 get_headers
Array
(
[0] => HTTP/1.0 200 OK
[1] => Content-Type: image/jpeg
[2] => Last-Modified: Wed, 14 Nov 2012 11:06:07 GMT
[3] => X-Cache-Status: HIT
[4] => Expires: Tue, 19 Jan 2038 03:14:07 GMT
[5] => Cache-Control: max-age=2592000
[6] => X-Cache: HIT
[7] => Content-Length: 120185
[8] => Connection: close
[9] => Date: Fri, 16 Nov 2012 08:01:15 GMT
[10] => Server: lighttpd/1.4.26
)
CURL 没有 Content-Type ~> 这就是我想要的
Array
(
[0] => HTTP/1.1 200 OK
[1] => Content-Length: 120185
[2] => Connection: close
[3] => Date: Fri, 16 Nov 2012 08:01:42 GMT
[4] => Server: lighttpd/1.4.26
[5] =>
[6] =>
)
这是我通过 curl 函数获取的标题
function get_headers_curl($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
$r = curl_exec($ch);
$r = split("\n", $r);
return $r;
}
如果我设置了返回 Content-Type 的 CURL
curl_setopt($ch,CURLOPT_HTTPGET,true);
但它也会返回文件内容(正文),如何仅使用 CURL 而没有文件内容来准确获取文件内容类型?
【问题讨论】:
-
@Baba 你好,我的 PHP 版本是 5.3
-
是否可以提供图片URL进行测试???即使在 PHP 5.3 上也无法复制您的问题
-
Seen .. 已经看到了这个问题 ... 如果你设置
curl_setopt($ch, CURLOPT_NOBODY, false);它也可以工作... 让我更深入地了解一下 .. -
我认为问题在于 get_headers 发送 GET 请求,而带有 CURLOPT_NOBODY 的 CURL 请求方法将设置为 HEAD。如果你改变 CURLOPT_HTTPGET = true,一切都会好的。 :(
-
已经看到...为了确定破坏了一些测试...
标签: php curl header content-type