【问题标题】:write php code in xml file didn't work在 xml 文件中编写 php 代码不起作用
【发布时间】:2015-05-11 23:00:59
【问题描述】:

我尝试在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 文件的图像)

【问题讨论】:

  • 嗨 mohamed amin,请编辑您的问题,我不明白 1. 您尝试了 php-wise,2. 您期望的结果,3. 到底出了什么问题以及如何。

标签: php xml output


【解决方案1】:

重命名您的文件 .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>

【讨论】:

  • 感谢 simon,我知道这个解决方案,但我想在不更改 xml 文件扩展名的情况下这样做
  • 为此,您应该更改您的网络服务器配置。如果您使用的是 Apache,您可以将其添加到配置文件 AddType application/x-httpd-php .xml
【解决方案2】:

不解释 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 脚本生成的输出被发送到浏览器。文件扩展名与浏览器无关。服务器向浏览器发送内容类型标头。哪种内容类型取决于网络服务器的配置,如果是脚本,则取决于脚本。

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

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

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

【讨论】:

    猜你喜欢
    • 2017-09-19
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多