(1)
浏览器遇到<a>,会认为其是一个html标签会对其解析。如果需要原样输出<a>的话,则需要改成 <a&rt;这样的形式。
由次当用户输入一段恶意代码的时候,如:
<style type="text/css">
alert(1);
</style>
如果将所有的大小括号都变成,< &rt; 那么这段代码就会原样输出,而不会被执行。
因此htmlentities( ) 函数把字符转换为 HTML 实体,这样浏览器就不会对它们进行解析,而是原样输出。entity的意思是“实体的,本质的”
(2)
其实转义字符做了一样的工作,将尖括号或者括号进行转义,告诉浏览器这并非一个正常的标签区域,你只要原样输出就好乐,这就避免了很多问题,比如:
"sasadas\" ",这里要输出一个双引号,但是如果不加转义,浏览器会误解的,会把它当成一对引号的结束标记。