HTML中的表单是网络用户数据提交给做事器的紧张路子,如果处理不会被黑客利用成为攻击做事器的入口。例如在用户发布文章时,文章如果包括HTML标记或者JavaScript页面转向的代码,如果直接输出的话会使页面布局发生改变。这些代码不做处理会被浏览器理解成有效代码去阐明。以是在php中,对用户提交的数据内容一定要先处理。我们可以用PHP中HTML干系的字符串格式化函数,有效掌握HTML文本输出。
函数nl2br()
在浏览器中输出的字符串只能通过HTML的“
”标记换行,也有很多人习气利用“\n”作为换行符号,但是浏览器并不识别这个字符串换行符。纵然有多行文本,在浏览器中显示只有一行。nl2br()函数便是在字符串的每个新行“\n”之前插入HTML换行符“
”。比如:echo nl2br(\公众first line,\n second line\"大众);。
函数htmlspecialchars()
如果不肯望浏览器直接解析HTML标记,须要把HTML标记中的分外字符转换成HTML实体。例如,将\"大众<\"大众转换为“<”,将“>”装换为“>”。这样HTML标记浏览器就不会去解析,而是将HTML文本在浏览器中原样输出。php中供应的htmlspecialchars()函数就可以将一些预定义的字符转换为HTML实体。此函数用在预防利用者供应的笔墨中包含了HTML的标记,像是布告栏或是访客留言板这方面的运用。它可以转换的字符:
“&”(和号)转换为“&;”。
““”(双引号)转换为“\"大众;”。
“‘’”(单引号)换为“';”。
“<”(小于号)转换为“<”。
\"大众>\"大众(大于号)转换为“>”。
函数htmlspecialchars()有三个参数,第一个参数是必选函数。第二个参数是可选参数,用来决定引号的转换办法。(ENT_COMPAT转换双引号,保留单引号;ENT_QUOTES同时转换两种引号;ENT_NOQUOTES不对引号转换。)第三个参数是可选的值,用于指定处理的字符串的字符集,默认的字符集是“ISO8859-1”.其他的可以利用的合法字符集
htmlentities()函数
htmlentities()函数可以将所有非ASCII码转换为对应的实体代码。htmlentities()函数和htmlspecialchars()函数利用语法格式同等,单该函数可以转义更多的HTML字符。
strip_tags函数
函数htmlspecialchars()可以将HTML中的标记符号转换为对应的HTML实体,有时可以直接删除用户输入的HTML标签,也是很有必要的。PHP供应的strip_tags函数默认便是可以删除字符串中的所有的HTML标签,也可以有选择性的删除一些HTML标记。比如说公告栏或者访客留言,比如说在论坛发布文章时,可以预留一些可以改变笔墨大小、颜色、粗体和斜体等HTML标记,而删除一些对页面布局有影响的HTML标记。
有一些函数文章中没有提到,欢迎大家补充。每天学习一个知识点,逐日寄语“滴水穿石,不是力量大,而是功夫深。”