【问题标题】:Convert special character '&' , '>' and '<' to their respective character reference for XML将特殊字符 '&' 、 '>' 和 '<' 转换为它们各自的 XML 字符引用
【发布时间】:2015-05-26 10:40:20
【问题描述】:

我只需要为我的 XML 替换这 3 个符号:

  1. & 到&amp;amp;
  2. &lt;
  3. >到&amp;gt;

我使用了htmlspecialchars,但它也会替换单引号和双引号。

【问题讨论】:

  • 嗯,引号在 XML 中是特殊的。为什么不想您要转换它们?!
  • 其实我在UI端有两个应用,一个是GWT,一个是php。 GWT 将地图发送到我们的服务(基于 Java),我正在创建 XML 就像创建地图一样。我们的服务可以带引号,但是当我传递 & 时,它给出了一个异常:“实体名称必须紧跟在实体引用中的 '&' 之后。”
  • 所以...转换它们不是问题...?
  • 不确定其他人,但这三个正在出现问题。
  • 我是说,如果你编码所有特殊字符(根据htmlspecialchars()的定义),这是一个实际的问题吗?阅读 XML 的人应该仍然正确。

标签: php xml special-characters


【解决方案1】:

查看htmlspecialchars 文档。您可以使用标志来忽略引号(您可能对 ENT_NOQUOTES 标志感兴趣)。

这是同一篇文章中的一个例子:

<?php
$str = "Jane & 'Tarzan'";
echo htmlspecialchars($str, ENT_COMPAT); // Will only convert double quotes
echo "<br>";
echo htmlspecialchars($str, ENT_QUOTES); // Converts double and single quotes
echo "<br>";
echo htmlspecialchars($str, ENT_NOQUOTES); // Does not convert any quotes
?>

【讨论】:

    猜你喜欢
    • 2023-03-08
    • 2013-03-08
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    • 2015-02-20
    • 2019-02-17
    • 2013-05-02
    • 1970-01-01
    相关资源
    最近更新 更多