【问题标题】:PHP - echo entire xml string (including tags)PHP - 回显整个 xml 字符串(包括标签)
【发布时间】:2013-10-08 09:23:09
【问题描述】:

我希望在电子邮件中包含整个 xml 字符串(包括标题、标签等)作为复制/粘贴的备份。如果我使用以下内容:

<?php $xml_content = file_get_contents('http://www.w3schools.com/xml/note.xml'); echo $xml_content; ?>

它显示: Tove Jani 提醒这个周末不要忘记我!

而不是完整的字符串:

<?xml version="1.0" encoding="ISO-8859-1"?>
<note> 
 <to>Tove</to> 
 <from>Jani</from> 
 <heading>Reminder</heading>
 <body>Don't forget me this weekend!</body>
</note>

【问题讨论】:

  • 确实返回完整的 XML 字符串。如果您从浏览器查看,请尝试查看源代码。

标签: php xml


【解决方案1】:

如果要完整输出文件,则必须将页面内容类型设置为 xml 或纯文本。

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

或者如果这不起作用,那么

header('Content-Type: text/plain');

【讨论】:

  • 我主要希望导入xml并在PHP中使用它,那会弄乱那部分吗?
  • 如果您希望将 XML 导入 PHP,只需执行此操作。您的问题是将 XML 文档输出到 HTML 页面时的显示问题。您的浏览器正在处理 XML 元素,例如&lt;note&gt;,好像它们是(未知的)HTML 元素并且没有显示它们。 PHP 将很好地接收 XML。
  • 请记住,如果您想在电子邮件中发送 XML,那么您需要确保电子邮件类型是纯文本,或者如果是 HTML,则对 XML 输出进行编码,以便它显示正常,可能使用htmlspecialchars() 这也适用于将其输出到 HTML 页面。
【解决方案2】:

如果您希望在电子邮件中显示带有标签的 XML,那么您必须将特殊的 HTML 标签转换为实体。

<?php
    $xml_content = file_get_contents('http://www.w3schools.com/xml/note.xml');
    echo htmlspecialchars($xml_content);
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-09
    • 2010-11-30
    • 2012-04-01
    相关资源
    最近更新 更多