Я использую WAMPServer 2.1 на моей локальной машине. Я пытаюсь создать простой сценарий PHP для вывода файла XML. Я не могу заставить его работать без генерации ошибки в IE и Chrome. На Firefox 4 это работает.
Вот PHP:
<?php
main();
function main()
{
header("Content-type: application/xml");
OutputXML('xml/login_user_good.xml');
exit(0);
}
function OutputXML($filename)
{
echo file_get_contents($filename);
}
?>
Вот файл XML:
<?xml version="1.0" encoding="utf-8" ?>
<login_user>
<result_code value="1"/>
<error value="Invalid username or password"/>
</login_user>
Когда я пытался получить доступ к своему скрипту PHP с помощью IE 8, я получаю эту ошибку:
The XML page cannot be displayed Cannot view XML input using style sheet.
Please correct the error and then click the Refresh button, or try again later.
--------------------------------------------------------------------------------
Invalid at the top level of the document. Error processing resource
'http://localhost/kiamobile/login_user.php'. Line 1, P...
<?xml version="1.0" encoding="utf-8" ?>
^
В Google Chrome 10 я получаю эту ошибку:
This page contains the following errors:
error on line 1 at column 6: XML declaration allowed only at the start of the document
В Firefox 4 я получаю правильно отформатированный вывод XML.
В любом браузере при просмотре исходного кода отображается правильный XML.
Я пробовал с явным заголовком и без него. Если я удалю вызов функции header () PHP, я получу следующие результаты:
- IE 8: та же ошибка, что и раньше
- Firefox 4: пустой экран
- Chrome 10: пустой экран
Опять же, если я просматриваю источник в любом из браузеров, я могу видеть XML. Я попытался использовать text / html вместо application / xml, но безрезультатно.
Я попытался сгенерировать XML непосредственно в коде PHP, например:
<?php
main();
function main()
{
header("Content-type: application/xml");
OutputXML();
exit(0);
}
function OutputXML()
{
echo <<<END
<?xml version="1.0" encoding="utf-8" ?>
<login_user>
<result_code value="1"/>
<error value="Invalid username or password"/>
</login_user>
END;
}
?>
Когда я это делаю, я получаю следующие результаты:
- IE 8: та же ошибка
- Firefox 4: я вижу отформатированный XML
- Chrome 10: пустой экран
Что я делаю не так?