我正在从 PHP 脚本生成 XML 文档,我需要转义 XML 特殊字符。 我知道应该转义的字符列表;但是正确的方法是什么?
字符应该只用反斜杠(\')转义还是正确的方法是什么? 是否有任何内置的 PHP 函数可以为我处理这个问题?
最佳答案
我创建了使用 five "predefined entities" 转义的简单函数在 XML 中:
function xml_entities($string) {
return strtr(
$string,
array(
"<" => "<",
">" => ">",
'"' => """,
"'" => "'",
"&" => "&",
)
);
}
使用示例 Demo :
$text = "Test & <b> and encode </b> :)";
echo xml_entities($text);
输出:
Test &amp; <b> and encode </b> :)
使用 str_replace
可以达到类似的效果,但由于双重替换,它很脆弱(未经测试,不推荐):
function xml_entities($string) {
return str_replace(
array("&", "<", ">", '"', "'"),
array("&", "<", ">", """, "'"),
$string
);
}
关于php - 在 PHP 中生成 XML 文档(转义字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3957360/