Как я могу учитывать заголовки, которые не следуют за правильной прописной буквой? - PullRequest
0 голосов
/ 22 февраля 2011

Обновленный вопрос:

При использовании get_headers() с опцией format для использования именованных ключей массива (а не пронумерованных ключей), как я могу учитывать такие ситуации, как сервериспользование Content-type вместо Content-Type?


Исходный вопрос: Проблема с PHP при получении заголовка файла с двоеточием в URL
Привет, яУ меня проблемы с получением информации заголовка удаленного URL с двоеточием.Я попытался использовать urldecode, и он декодирует% 3A в:, однако это не решает проблему.Что делать?
Этот URL: http://string -theory.wdfiles.com / local - files / char% 3Ajezebel / evangeline-lilly-picture-4a.jpg

1 Ответ

0 голосов
/ 22 февраля 2011

Обновленный ответ:

Если вы не можете гарантировать, что сервер использует правильную прописную букву, вы можете использовать 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: (с использованием URL-адреса, указанного в 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
)
...