如何计算不符合正确大小写的标题?

时间:2011-02-22 17:14:34

标签: php header case-sensitive array-key

更新了问题:

使用带有get_headers()选项的format来使用命名数组键(而非编号键)时,如何使用Content-type而不是{{1来说明服务器等情况}}?

<小时/> 原始问题: PHP问题是在网址中有冒号的文件的标题 嗨,我在检索远程网址的标头信息时遇到问题。我尝试过使用urldecode并将%3A解码为:但是它没有解决问题。怎么办?
这个网址: http://string-theory.wdfiles.com/local--files/char%3Ajezebel/evangeline-lilly-picture-4a.jpg

1 个答案:

答案 0 :(得分:0)

更新答案:

如果您无法保证服务器使用正确的大小写,您可以使用array_change_key_case更改命名密钥。

<?php
    $original = array('Content-type'=>'text/html');
    echo $original['Content-Type']; // Notice: Undefined index

    $fixed = array_change_key_case($original, CASE_LOWER);
    echo $fixed['content-type']; // prints 'text/html'
?>

<小时/> 旧答案:

你将不得不扩展你的问题,因为这完全有效:

<强> PHP:

<?php
    $url = 'http://www.mysite.com/dev/blah.php?blah=1:2:3';
    print_r(get_headers($url));
?>

<强>输出:

Array
(
    [0] => HTTP/1.1 200 OK
    [1] => Date: Tue, 22 Feb 2011 18:28:20 GMT
    [2] => Server: Apache
    [3] => Connection: close
    [4] => Content-Type: text/html
)

输出2:(使用OP提供的网址)

Array
(
    [0] => HTTP/1.0 200 OK
    [1] => Etag: "8b48b69ed24101b9a235e0168874c720"
    [2] => Content-type: image/jpeg; charset=utf-8
    [3] => Content-Length: 482111
    [4] => Connection: close
    [5] => Date: Wed, 23 Feb 2011 19:50:42 GMT
    [6] => Server: lighttpd/wikidot
)