1

更新的问题:

当与使用命名数组键(而不是编号键)get_headers()format选项一起使用时,我如何考虑服务器使用Content-type而不是的情况Content-Type


原始问题: PHP 问题获取 url 中有冒号的文件的标题
嗨,我无法检索其中有冒号的远程 url 的标题信​​息。我曾尝试使用 urldecode 并将 %3A 解码为 :,但它并不能解决问题。该怎么办?
这个网址: http ://string-theory.wdfiles.com/local--files/char%3Ajezebel/evangeline-lilly-picture-4a.jpg

4

1 回答 1

1

更新答案:

如果您不能保证服务器使用正确的大小写,您可以使用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 给出的 URL)

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
)
于 2011-02-22T18:30:16.673 回答