XML декларация не очень хорошо работает с PHP - PullRequest
5 голосов
/ 28 сентября 2011

Я использую PHP для вывода пользовательского XML на основе значений, хранящихся в базе данных MySQL.У меня есть следующее в начале условия:

echo '<?xml version="1.0" encoding="UTF-8"?>';

(я также пробовал этот вариант:

echo "<?xml version='1.0' encoding='UTF-8'?>";

безрезультатно.)

Однако, это всегда выводится (в каждом браузере и даже при просмотре как загруженный файл из wget) как:

<?xml version=1.0 encoding=UTF-8 ?>

Где-то вдоль строки, одиночные кавычки вокруг номера версии и кодировки отбрасываются.Где я ошибся и что я могу сделать, чтобы это исправить?Я получаю ошибки от моего анализатора и считаю, что это потому, что это объявление не соответствует стандарту XML, заключающемуся в одинарные или двойные кавычки вокруг этих значений.

1 Ответ

1 голос
/ 28 сентября 2011

Я думаю, это потому, что тип содержимого вашего документа уже установлен на text / html (по умолчанию по php).

Решение этой проблемы состоит в том, чтобы установить это как заголовок, а не отображать его.

Например:

header ("Content-Type:text/xml");

для установки кодировки:

header('Content-Type: text/xml; charset=utf-8');

И убедитесь, что вы установили это ПЕРЕД тем, как вы выводите (эхо) что-либо еще.

Надеюсь, это поможет :)

...