Между шаблонами XML и HTML нет большой разницы.
<Response>
<Msg>
Your number is: <?php echo htmlspecialchars($_GET['From']); ?>
and you typed: <?php echo htmlspecialchars($_GET['Body']); ?>
</Msg>
</Response>
Если ваша установка PHP настроена на использование «коротких тегов» (т. Е. Просто <?
само по себе, а не <?php
) в качестве кода PHP, то объявление XML отключит его. Это и стало причиной вашей ошибки.
Несмотря на то, что вы можете решить эту проблему, отключив короткие теги, вероятно, лучше вместо этого удалить или объявление <?xml
. В любом случае нет смысла включать декларацию XML в файл XML (если только вы не используете XML 1.1 или кодировку символов, отличную от UTF-8, которую обычно следует избегать).
Как и в HTML, вам нужно экранировать символы <
и &
(и кавычки в значениях атрибутов), иначе ваша разметка будет повреждена. htmlspecialchars
работает так же хорошо для XML, как и для HTML. (Возможно, вы захотите определить функцию с более коротким именем, чтобы сделать echo htmlspecialchars
, чтобы сократить ввод.)