格式化http的header字符串为数组(格式为键值对或格式传header值用的索引数组)

格式为键值对的话,方便取值

或格式传header值用的索引数组,可以用于调用接口传值使用

/**格式化http的header字符串为数组
 * @param $header_str  header头字符串
 * @param int $is_need_key  是否分割成键值对数组,方便取出每一项的值,仅仅分割换行不分割键值对的话这个数据格式刚好可以抓数据时候传header
 * @return array 返回数组
 */
function http_header_to_arr($header_str,$is_need_key=0){
    $header_list = explode("\n", $header_str);
    if(!$is_need_key){
        return $header_list;//这个值可以用在调用接口时候传递header头使用
    }
    $header_arr = [];
    foreach ($header_list as $key => $value){
        if(strpos($value, ':') === false){
            continue;
        }
        list($header_key, $header_value) = explode(":", $value, 2);
        $header_arr[$header_key] = trim($header_value);
    }
    if(isset($header_arr['Content-MD5'])){
        $header_arr['md5'] = bin2hex(base64_decode($header_arr['Content-MD5']));
    }
    return $header_arr;
}
THE END