q6542125 发表于 2018-12-20 10:04:36

PHP生成xml时进行实体转义

在生成xml时常常忽略了转义字符的处理,导致了生面的xml文件有问题


在生成xml时常常忽略了转义字符的处理,导致了生面的xml文件有问题,可以用下面的函数实现字符的转义
xml在处理一些特殊字符时需要转义,下面是一个简单的转义函数
function xmlencode($tag)
{
$tag = str_replace("&", "&", $tag);
$tag = str_replace("", ">", $tag);
$tag = str_replace("'", "'", $tag);
$tag = str_replace("/"", '"', $tag);
return $tag;
}
  XML 特殊字符处理
在XML中,有一些符号作为XML 的标记符号,一些特定情况下,属性值必须带有这些特殊符号。 下面主要是讲解一些常用的特殊符号的处理

例一: 双引号的使用。
双引号作为XML 属性值的开始结束符号,因此无法在值中直接使用"". 处理方式可以分为两种。
a: 属性值中没有'(单引号) ,那么可以用单引号'' 作为属性值的开始结束符号
...属性值为 ("apple").
解决: 

b: 属性值中有'(单引号) ,也有双引号。 如...属性值为 ("'apple").

下表为 XML 标记使用的字符列出了五种内置实体。
实体                                             实体引用                                                      含义lt                                                    &lt;                                                               < (小于号)
gt                                                &gt;                                                             > (大于号)
amp                                             &amp;                                                         & (“and”符)
apos                                              &apos;                                                          '(撇号或单引号)
quot                                              &quot;                                                          &quot;(双引号)

如果字符可能会使 XML 分析器错误地解释文档结构,请使用实体,而不要键入字符。&apos; 和 &quot; 实体引用最常用在属性值中。




页: [1]
查看完整版本: PHP生成xml时进行实体转义