gpt4 book ai didi

php - 将 cURL header 信息拆分为数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:55:59 25 4
gpt4 key购买 nike

考虑以下 PHP cURL 命令:

$url = 'http://bit.ly/faV1vd';

$_h = curl_init();
curl_setopt($_h, CURLOPT_HEADER, 1);
curl_setopt($_h, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($_h, CURLOPT_HTTPGET, 1);
curl_setopt($_h, CURLOPT_URL, $url);
curl_setopt($_h, CURLOPT_DNS_USE_GLOBAL_CACHE, false );
curl_setopt($_h, CURLOPT_DNS_CACHE_TIMEOUT, 2 );

$return = curl_exec($_h);

返回:

HTTP/1.1 301 Moved
Server: nginx
Date: Sun, 29 Apr 2012 12:48:07 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Set-Cookie: _bit=4f9d3887-00215-020af-2f1cf10a;domain=.bit.ly;expires=Fri Oct 26 12:48:07 2012;path=/; HttpOnly
Cache-control: private; max-age=90
Location: http://www.macroaxis.com/invest/market/VZ--Sat-Feb-26-06-16-35-CST-2011?utm_source=twitterfeed&utm_medium=twitter
MIME-Version: 1.0
Content-Length: 209

我想把header info拆分成一个数组,如下

[Status] => HTTP/1.1 301 Moved,
[Server] => nginx,
[Date] => Sun, 29 Apr 2012 12:48:07 GMT,
...
[Content-Length] => 209

所以: - 第一行 (HTTP/1.1 301 Moved) 应该是 [Status] 的值 - 所有其他 header 信息应在 :

上拆分

我没有成功拆分 header 信息:

explode("\r\n\r\n", $return);
explode("\r\n", $return);

这不会按预期将 header 拆分为数组(进一步拆分 : 等。我做错了什么?

最佳答案

Altaf Hussain的回答很好,但不支持 header 响应包含 ':' 的情况。即 X-URL: http://something.com。在这种情况下,$myarray 将只包含 ('X-URL' => 'http')

这可以通过添加 limit 来解决。参数并将其设置为 2。另外,冒号后面应该有一个空格。因此,包含错误修复的完整解决方案是:

$myarray=array();
$data=explode("\n",$return);

$myarray['status']=$data[0];

array_shift($data);

foreach($data as $part){
$middle=explode(": ",$part,2);
$myarray[trim($middle[0])] = trim($middle[1]);
}

print_r($myarray);

关于php - 将 cURL header 信息拆分为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10372298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com