欢迎访问宙启技术站
智能推送

htmlspecialchars()函数的用途和简介

发布时间:2023-06-27 01:22:42

htmlspecialchars()函数是一种用于转换HTML标记的PHP函数。本身,网页浏览器会将web剪贴板中的内容按 HTML的格式完整显示,包括各种撰写文本样式、图片、链接、表格等等。如果您碰巧要向数据库中插入网页内容(例如,开展一个留言板的主页),可能就会有任何一个概率,在浏览器解读这些标记时造成错误。

使用htmlspecialchars()函数,就可以将HTML标记(即" < " 和 " > ")转换成可以被浏览器解度的字符,规避了?该种错误。当然,还有关于输出特殊字符转义的其他函数,例如htmlentities()、addslashes()等等,它们稍微有点不相同,但我们今天如果八卦连篇的讲解就可能会孤芳自赏,因此不在此讲解。

在这里,我们先来了解一下htmlspecialchars()函数的一些参数及其用途。

htmlspecialchars()函数的语法:

mixed htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get('default_charset') [, bool $double_encode = true ]]] );

函数参数:

$string :必要。字符串参数,待处理的字符集

$flags :可选。常量参数 , 用于控制将会用到哪些转义字符,参数详情如下:

ENT_QUOTES :默认, 将” ' ” (单引号)、"” (双引号)、 ”&”、” < ”、 ”>” 转化为HTML实体字符.

ENT_COMPAT : 将” ' ” (单引号)和 ”” (双引号)以外的全部转换.

ENT_NOQUOTES :将不转译任何引号(双引号、单引号均不转)

ENT_IGNORE :忽略无效的编码标记

ENT_SUBSTITUTE :使用“U+FFFD REPLACEMENT CHARACTER”字符替换无效字节序列

$encoding :可选。字符串参数,设置字符集编码形式。默认为运行 php.ini 文件中的 default_charset 配置选项中的字符集编码。

$double_encode :可选。布尔类型参数,表示是否对预定义的html实体字符进行二次编码(将出现的 < 符号变成 &lt; 而不是 &amp;lt; ) 如果设置为TRUE,PHP将始终对特殊字符进行编码,而不仅仅是在必要的情况下。

htmlspecialchars()执行过程:

htmlspecialchars()函数将输入字符串中的HTML特殊字符以及不可显示的字符转码为HTML实体字符,在HTML中只会将实际字符显示出来。HTML标记字符无法翻译。例如:

字符串输入:这是<b>粗体</b>,这是“引号”,这是"双引号",这是 '单引号'。

函数执行:这是<b>粗体</b>,这是“引号”,这是"双引号",这是'单引号'。

注意:htmlspecialchars()不会转换ASCII码值低于32的字符,不包括Windows风格换行符"\r

",如果您想要转义ASCII码值低于32的字符,可以分别转义每个字符,或者使用htmlentities()这样的函数,该函数自动对一些特殊字符进行转义。

总的来说,htmlspecialchars()函数可以帮助我们消除各种不必要的狂妄,提升了网站安全系数和用户体验。