首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

盘点:PHP常用的HTML标签相关的字符串格式化函数,你知道几个?

为什么要将HTML标签相关的字符串格式化?

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标记。

有一些函数文章中没有提到,欢迎大家补充。每天学习一个知识点,每日寄语“滴水穿石,不是力量大,而是功夫深。”

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180805A0ENJY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券