1 差别
htmlspecialchars()和htmlentities()唯一的差别是对于不认识的编码是否转义。
比如,对于西欧编码ISO-8859-1来说,中文字符是“不认识的编码”
2 举个例子说明差别
2.1 转义 不认识的编码 有差别
$str = '中文字符'; echo " \n htmlentities会转义:—— \n"; echo htmlentities($str, ENT_QUOTES, 'ISO-8859-1');//ISO-8859-1 ISO8859-1 西欧,Latin-1 echo " \n htmlspecialchars不会转义,原样输出:—— \n"; echo htmlspecialchars($str, ENT_QUOTES, 'ISO-8859-1');
2.2 转义html 无差别
//转义html $str = "< ' \" > \n"; echo " \n htmlentities 转义html:—— \n"; echo htmlentities($str, ENT_QUOTES); echo " \n htmlspecialchars 转义html:—— \n"; echo htmlspecialchars($str, ENT_QUOTES);
2.3 转义sql注入使用addslashes()
$str = "< ' \" > null 中文 <?php ?> bb' or 1='1' & \n"; echo " \n htmlentities 转义sql注入:—— \n"; echo htmlentities($str, ENT_QUOTES); echo " \n htmlspecialchars 转义sql注入:—— \n"; echo htmlspecialchars($str, ENT_QUOTES); echo " \n addslashes 转义sql注入:—— \n"; echo addslashes($str);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2022-08-31 Swoole实战之手撸HttpServer框架 18 支持多级文件夹bean扫描
2020-08-31 thinkpad 老型号小黑 安装win10+linux双系统
2020-08-31 分单