PHP-код внутри XML?

можно ли позже поместить PHP-код внутри XML-документа? Например, могу ли я сказать <element value="<?php echo date('Y'); ?>" /> ?

благодаря!

Это возможно, но я бы рекомендовал поместить его в блок CDATA , поэтому вам не нужно скрывать < и подобные символы:

 <element> <![CDATA[ <?php echo date('Y'); ?> ]]> </element> 

Если вы запустите XML-файл как скрипт PHP, тогда да. Результат скрипта будет действительным XML, но файл, содержащий встроенный PHP, скорее всего, не будет корректным XML.

Чтобы заставить ваш веб-сервер выполнять PHP внутри файлов XML, измените тип .xml MIME на application/x-httpd-php , добавив эту строку в .htaccess :

 AddType application/x-httpd-php .xml 

Теперь все файлы XML обрабатываются веб-сервером так же, как файлы PHP:

 <?xml version="1.0" encoding="UTF-8"?> <servertime> <?php echo date('c'); header('Content-Type: application/xml; charset=utf-8'); ?> </servertime> 

Обратите внимание, что определение header – это исправление MIME-типа вашего файла обратно в application/xml . В противном случае браузер будет обрабатываться как HTML, не позволяя ему отображать красивое дерево DOM (или что бы обрабатывать XML по умолчанию не было). Даже если файл не предназначен для открытия в браузере, никогда не приятно подделывать MIME-тип файла, поэтому, пожалуйста, не забудьте эту строку;)

Недостаток этого решения: теперь все XML-файлы в области доступа вашего .htaccess будут обрабатываться как php, поэтому вам придется изменить MIME-тип любого XML-файла в той же папке через PHP. Обход проблемы: переместите ваш php-взломанный XML и .htaccess в отдельную папку.

Конечно вы можете. У вас может быть что-то вроде: php -f yourfile.xml .

Программа PHP может выводить любой контент, который вам нравится, однако он будет (если используется с веб-модулем, например mod_php) выводить по типу содержимого text / html по умолчанию, так что вам нужно будет сделать:

 <?php header('Content-Type: application/xml; charset=utf-8'); ?> 

(Замените более подходящий тип контента, если он применим).

Вам также потребуется настроить ваш веб-сервер, чтобы узнать, что файл должен обрабатываться как PHP и не использоваться как статические данные. Обычно это достигается путем предоставления файлу расширения .php . Проконсультируйтесь с руководством для своего веб-сервера и модуля PHP, если вы хотите использовать другое соглашение об именах файлов.

Да.

Используйте этот пример кода, filenamed 'example.php':

 <?php ob_start(); require_once "relative/path/to/file.xml"; $xml_with_php_values = ob_get_clean(); ?> 

Поместите php в файл xml так, как вы помещаете в html.

 <element value="&lt;?php echo date('Y'); ?&gt; />