полученные заголовки HTTP неправильные / неожиданные для типа файла XSL
-
05-07-2019 - |
Вопрос
Я использую PHP + curl для получения файла XSL, но сначала я хочу сделать некоторую минимальную проверку того, что файл действительно является файлом XSL. Р>
Я уверен, что файл существует, имеет код состояния 200 OK и правильное расширение файла, но затем я хочу проверить заголовок для Content-Type. Я делаю это с помощью функции curl_getinfo ()
. Все хорошо.
Но XSL-файлы всегда возвращают " code / application / xml " или " text / xml
" как Content-Type, который предназначен для файлов XML. Я считаю, что заголовок XSL должен быть application / xslt + xml
. Итак, что здесь происходит и как я могу убедиться, что это документ XSL?
Решение
Вы можете проверить пространство имен XSLT в файле.
Если версия PHP > = 5.1.2, используйте SimpleXmlElement :: getNamespaces () код>
Другие советы
Используете ли вы это для доступа к сторонним сайтам или сайтам, которые вы настраиваете самостоятельно? Если это ваш собственный сайт, вам нужно настроить Apache для обслуживания соответствующих типов пантомимы в зависимости от расширения файла.
Если это сторонние сайты, я не уверен, что вы можете положиться на типы пантомимы, поскольку они могут обслуживать все, что захотят. Лучше всего просто получить первые несколько строк файла и проверить, что корневым элементом является xsl.
Другой подход, для PHP 5:
<Ол>