栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

htmlentities()是否足以创建xml安全值?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

htmlentities()是否足以创建xml安全值?

htmlentities()
这不是
构建合法XML的保证方法。

如果您只担心这,请使用

htmlspecialchars()
代替
htmlentities()
。如果您的数据表示形式与XML文档的编码形式之间存在编码不匹配的情况,则
htmlentities()
可以解决/覆盖它们(这样做会使XML大小变大)。我相信最好保持一致并只使用
htmlspecialchars()

另外,请注意,如果将

htmlspecialchars()
内部用单引号引起来的XML属性的返回值作为泵浦,则还需要传递该
ENT_QUOTES
标志,以便对源字符串中的任何单引号也进行正确编码。我建议无论如何都要这样做,因为这会使您的代码不受将来有人对XML属性使用单引号引起的错误的影响。

编辑: 澄清:

htmlentities()
会将许多非ANSI字符(我想这就是UTF-8数据的意思)转换为实体(仅用ANSI字符表示)。但是,它不能对没有相应实体的任何字符执行此操作,因此不能保证其返回值仅由ANSI字符组成。这就是为什么我建议不要使用它。

如果可能存在编码问题,请明确处理(例如,使用

iconv()
)。

编辑2 :考虑到乔什·戴维斯(Josh Davis)以下的评论,改进了答案。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/374865.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号