是否可以将PHP代码放在XML文档中以便稍后执行?例如,我可以说<element value="<?php echo date('Y'); ?>" />
吗?
谢谢!
答案 0 :(得分:5)
这是可能的,但我建议将其放在 CDATA 块中,这样您就不必转义<
和类似字符:
<element>
<![CDATA[
<?php echo date('Y'); ?>
]]>
</element>
答案 1 :(得分:3)
如果您将XML文件作为PHP脚本运行,那么是。脚本的输出将是有效的XML,但包含内联PHP的文件很可能不是有效的XML。
答案 2 :(得分:2)
要强制您的网络服务器在XML文件中执行PHP,请将.xml
- 文件的MIME类型更改为application/x-httpd-php
,方法是将此行添加到.htaccess
:
AddType application/x-httpd-php .xml
现在,Web服务器处理所有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类型,所以请不要忘记这一行;)
此解决方案的缺点:现在所有在.htaccess
的访问范围内的XML文件将被视为php,因此您必须更改任何类型的MIME类型通过PHP在同一文件夹中的XML文件。解决方法:将php-hacked XML和.htaccess
移动到单独的文件夹中。
答案 3 :(得分:0)
当然可以。你可能会有:php -f yourfile.xml
。
答案 4 :(得分:0)
是
使用此示例代码,filenamed'example.php':
<?php
ob_start();
require_once "relative/path/to/file.xml";
$xml_with_php_values = ob_get_clean();
?>
将php放入xml文件中,就像放入html一样。
答案 5 :(得分:0)
PHP程序可以输出您喜欢的任何类型的内容,但是默认情况下它会(如果与mod_php这样的Web模块一起使用)输出文本/ html内容类型,所以您需要这样做:
<?php
header('Content-Type: application/xml; charset=utf-8');
?>
(如果适用,则替换更合适的内容类型。)
您还需要配置您的网络服务器,以识别该文件应被视为PHP,而不是作为静态数据提供。这通常通过为文件提供 .php 扩展名来实现。如果要使用不同的文件命名约定,请参阅Web服务器手册和PHP模块。
答案 6 :(得分:-1)
<element value="<?php echo date('Y'); ?> />