在xml文件中编写php代码不起作用

时间:2015-05-11 23:01:00

标签: php xml output

我试图在xml文件中写一个php代码,但代码不能输出..

<?xml version="1.0"?>
<MultimediaGallery>
    <file type="video">
        <thumb>media/videos/thumbs/<?php echo "disney.png"; ?></thumb>
        <source>https://www.youtube.com/watch?v=irF02LNZLpE</source>
        <description>Youtube Video: Introduction to HTML5</description>
</file>
</MultimediaGallery> 

结果(浏览器中.xml文件的图像) enter image description here

2 个答案:

答案 0 :(得分:2)

重命名文件.php并更改您的代码:

<?php
header("Content-type: text/xml");
?>
<?xml version="1.0"?>
 <file type="video">
    <thumb>media/videos/thumbs/<?php echo "disney.png"; ?></thumb>
    <source>https://www.youtube.com/watch?v=irF02LNZLpE</source>
    <description>Youtube Video: Introduction to HTML5</description>
</file>
</MultimediaGallery>

答案 1 :(得分:0)

不解释XML文件中的PHP。但是,PHP使用可以与XML兼容的语法。所以PHP文件可以是有效的XML。

XML具有称为处理指令的节点类型。它包含处理XML的程序/应用程序的信息。该程序可以是Web浏览器,PHP解释器或其他不同的东西。但程序必须知道如何解释特定的处理指令。

XML处理指令示例:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>

通用语法是:

<?PITarget PIContent?>

PHP使用兼容语法作为其指令:

<?php PHPSource?>

这就是为什么PHP文件可以是有效的XML文件。你可以像英语,法语,德语和其他语言一样使用相同的字母,但你仍然需要知道实际的语言才能理解单词。

因此将文件重命名为*.php。这是Web服务器的信息。它指定该文件包含PHP源并且必须执行。 PHP脚本生成的输出将发送到浏览器。文件扩展名与浏览器无关。服务器将内容类型标头发送到浏览器。在脚本上,哪种内容类型取决于Web服务器的配置以及它是否为脚本。

在PHP脚本中,您可以使用header()发送/修改该信息。

<?php
  header("Content-type: application/xml; charset: utf-8");
?>
<?xml version="1.0"?>
...

如果您希望在URL中包含扩展名.xml,则可以使用重写规则和/或更改Web服务器配置以将*.xml文件作为PHP脚本执行。但这不会改变Web浏览器处理响应的方式。