【问题标题】:Print xml with php用php打印xml
【发布时间】:2011-11-08 05:00:54
【问题描述】:

我有这个 php 代码

    <?php
    $status_code=1;
    echo "<?xml version=\"1.0\"?>\n";
    echo "<response>\n";
    echo "\t<status>$status_code</status>\n";
    echo "\t<time>" . time() . "</time>\n";
    if ($status_code == 1) {
            echo "\t<message>\n";
            echo "\t\t<author>Vlad</author>\n";
            echo "\t\t<text>Ova e poraka</text>\n";
            echo "\t</message>\n";
    }
    echo "</response>";
    ?>

为什么我在浏览器中看不到打印出来的 xml 代码?

通过直接在 php 中打印 xml 代码来创建 ajax 请求也是一种好习惯,还是应该使用一些 xml php 函数来创建 xml 代码?

我想使用这个tutorial 使用 jquery、ajax、php 和 mysql 创建一个聊天系统,但我收到错误,上面打印的 xml 格式不正确

【问题讨论】:

  • 尽量避免同时提出两个完全不同的问题。将它们分开处理并因此单独回答会更有用。
  • mmmm ok :) 将在其他问题中使用 ajax 发布

标签: php xml


【解决方案1】:

尝试查看您的源代码,xml 在那里但不可见。您的浏览器将尝试将页面显示为 HTML,因为您没有提供正确的标题。因为没有标签,所以你什么都看不到。

您应该发送正确的标头,如下所示:

header('content-type: text/xml')

【讨论】:

  • 只是指出,在任何输出到页面之前应该修改标题(在这种情况下,在脚本的开头)。
  • 如果不可能,您可以使用ob_start。但是请尝试将它们发送到页面顶部。
  • 好的。 with header 有效,但仅当我删除行 echo "\n";当此行存在时,我收到此错误 XML Parsing Error: XML or text declaration not at start of entity
【解决方案2】:

正如其他人所说,你需要给浏览器一个标题,让它知道如何显示页面。

至于xml函数,看PHPSimpleXMLElement

【讨论】:

    【解决方案3】:

    你必须放标题(让浏览器知道如何呈现显示):

    header ("Content-Type:text/xml");
    

    【讨论】:

    • 也试试内容类型为:application/xml
    【解决方案4】:

    正如其他人所说,您必须使用正确的内容类型。 我建议你使用XMLReader。 或者,如果您想要一种更简单的方法,请尝试将Heredoc 字符串语法与 sprintf 和 htmlspecialchars 一起使用,以使用 XML 中具有特殊含义的字符(如 &)

    对值进行编码

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-22
      • 2021-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多