首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

php 怎么取Array值

2013-01-23 
php 如何取Array值。Array([0] HTTP/1.1 200 OK[1] Date: Mon, 24 Dec 2012 16:15:18 GMT[2] Serv

php 如何取Array值。


Array
(
    [0] => HTTP/1.1 200 OK
    [1] => Date: Mon, 24 Dec 2012 16:15:18 GMT
    [2] => Server: BWS/1.0
    [3] => Content-Length: 9888
    [4] => Content-Type: text/html;charset=gbk
    [5] => Cache-Control: private
    [6] => Expires: Mon, 24 Dec 2012 16:15:18 GMT
    [7] => Set-Cookie: BAIDUID=9AFFEA9B11EC8D358FC1A13A8DCC83F9:FG=1; expires=Mon, 24-Dec-42 16:15:18 GMT; path=/; domain=.baidu.com
    [8] => P3P: CP=" OTI DSP COR IVA OUR IND COM "
    [9] => Connection: Close
)


用get_headers,如何取到网页头Cookie值。
[解决办法]

$array = array('Set-Cookie: BAIDUID=9AFFEA9B11EC8D358FC1A13A8DCC83F9:FG=1; expires=Mon, 24-Dec-42 16:15:18 GMT; path=/; domain=.baidu.com');
foreach ($array as $value) {
    if (stripos($value, 'Set-Cookie') !== false)
        echo $value;
}

[解决办法]
get_headers(); 第二个参数可以让响应标题作为键名
<?php
$header = get_headers('http://www.baidu.com/', true);
$c = $header['Set-Cookie'];
// 响应头里可以包含多个 Set-Cookie,所以统一为数组处理
if( ! is_array($c) ) $c = array($c);
foreach($c as $i){
    $s = explode('=', substr($i, 0, strpos($i, ';')), 2);
    $cookie[$s[0]] = $s[1];
}
var_dump( $cookie);

还有一些网站是以 set-cookie 响应,而不是Set-Cookie 这样的。所以程序还是有一些Bug,你可以自己去实现,不过我更推荐你使用 curl

热点排行