полученные заголовки HTTP неправильные / неожиданные для типа файла XSL - PullRequest
0 голосов
/ 30 июля 2009

Я использую PHP + curl для получения файла XSL, но сначала я хочу сделать некоторую минимальную проверку того, что файл действительно является файлом XSL.

Я уверен, что файл существует, имеет код состояния 200 OK и правильное расширение файла, но затем я хочу проверить заголовок для Content-Type. Я делаю это с помощью функции curl_getinfo(). Все хорошо.

Но XSL-файлы всегда возвращают «application/xml» или «text/xml» в качестве Content-Type, который предназначен для файлов XML. Я считаю, что заголовок XSL должен быть "application/xslt+xml". Итак, что здесь происходит и как я могу убедиться, что это XSL-документ?

Ответы [ 3 ]

0 голосов
/ 30 июля 2009

Вы можете проверить пространство имен XSLT в файле. Если версия PHP> = 5.1.2, используйте SimpleXMLElement::getNamespaces()

0 голосов
/ 30 июля 2009

Другой подход, для PHP 5:

  1. Вы можете попытаться загрузить таблицу стилей в XSLTProcessor . Возможно, выдается исключение, если таблица стилей неверна
  2. (лучше ИМХО) Проверка таблицы стилей XSL по ее схеме
0 голосов
/ 30 июля 2009

Используете ли вы это для доступа к сторонним сайтам или сайтам, которые вы настраиваете самостоятельно? Если это ваш собственный сайт, вам нужно настроить Apache для обслуживания соответствующих типов пантомимы в зависимости от расширения файла.

Если это сторонние сайты, я не уверен, что вы можете положиться на типы пантомимы, так как они могут обслуживать все, что захотят. Лучше всего, вероятно, просто получить первые несколько строк файла и проверить, что корневым элементом является xsl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...