【问题标题】:How to keep PHP from strippng XML tags when echoing a string回显字符串时如何防止 PHP 剥离 XML 标签
【发布时间】:2015-10-08 22:19:21
【问题描述】:

我正在通过 exec 在 PHP 中执行一个外部命令,然后获取该输出(这是一个数组),然后让单个字符串搜索特定字符串。然后我希望将这些字符串回显到屏幕上。但是,其中一些字符串包含 XML 示例,它们正在被剥离。如何防止 PHP 剥离 XML?我正在使用 PHP 5.6.2。

例如,我试图回显具有以下输出的 $val:

Missing test tag.  Please add the test tag and set it to true.  i.e. <data><test>true</test></data>.

但我得到以下信息:

Missing test tag. Please add the test tag and set it to true. i.e. true.

如您所见,“data”和“test”xml 标签正在被剥离。

【问题讨论】:

  • 右键单击。查看页面源代码。哭泣。
  • 定义“屏幕”。我怀疑您的意思是进入浏览器窗口,这意味着它将输出视为 HTML (sorta)。在这种情况下,@Mureinik 的答案是一种解决方案——因为标签被解释为标记,它们将不可见,htmlentities 会将它们转换为可见字符。另一种选择是设置不同的Content-Type 标头(如text/plain)。
  • 或者尝试从这样的命令行执行您的脚本:php script.php

标签: php xml php-5.6


【解决方案1】:

您可以将它们转换为htmlentities:

$str = 'Missing test tag.  Please add the test tag and set it to true.  i.e. <data><test>true</test></data>.';
echo htmlentities($str, ENT_XHTML);

【讨论】:

  • 如果您编辑答案以解释他们为什么要使用 htmlentities,我将很乐意投票。
  • 工作。具体来说,我添加了“echo htmlentities($val, ENT_XML1);”
猜你喜欢
  • 1970-01-01
  • 2014-07-31
  • 1970-01-01
  • 2017-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多