function dhtmlspecialchars($string, $flags = null) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = dhtmlspecialchars($val, $flags);
}
} else {
if($flags === null) {
$string = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string);
if(strpos($string, '&#') !== false) {
//过滤掉类似志的16进制的html字符
$string = preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4}));)/', '&\\1', $string);
}
} else {
if(PHP_VERSION < '5.4.0') {
$string = htmlspecialchars($string, $flags);
} else {
if(strtolower(CHARSET) == 'utf-8') {
$charset = 'UTF-8';
} else {
$charset = 'ISO-8859-1';
}
$string = htmlspecialchars($string, $flags, $charset);
}
}
}
return $string;
}
这个函数是Discuz! X2.5核心函数库中一个函数,我们可以看出,他是一个递归的写法,可以处理数组中的代码,他们的作用是可以把一个数组或字符串中的字符转化为html实体,可以防止页面的跨站问题,那么我们看到他的转换就是将‘&’,‘”’,‘<’,‘>’转化为'&', '"', '<', '>'。但是这里面会有一些问题,如‘& #x5FD7;’这样的16进制的html字符,为了防止这样的字符被错误转译,所以又使用了正则进行匹配,把这样的字符又转换回来。
参考:
http://bbs.phpchina.com/thread-224207-1-1.html
分享到:
相关推荐
1. `dhtmlspecialchars()`: 这个函数用于对字符串进行HTML实体编码,防止XSS跨站脚本攻击。在用户提交的数据需要显示到网页上时,必须先用此函数处理,避免恶意代码注入。 2. `showforum()`:此函数主要用于显示...
6. **安全机制**:为了防止SQL注入、XSS攻击等安全问题,`common.inc.php`会定义一些函数来处理输入数据,如`dhtmlspecialchars`用于过滤HTML标签,`addslashes`用于转义特殊字符,确保数据的安全性。 7. **URL重写...
这个函数用于过滤字符串中的特殊字符,防止XSS跨站脚本攻击。它将预定义的字符(如`&`, `"`, `'`, `, `>`)转换为HTML实体,确保在输出到网页时不会被解析为HTML代码。 3. `daddslashes($string, $force = 0)`: ...
为了防止SQL注入,我们一般会使用htmlspecialchars()和addslashes()这样的函数来转义特殊字符。然而,即便使用了这些函数,仍有一些特殊字符可能无法被正确处理。针对这一问题,我们可以通过正则表达式来进行更细致...
李白高力士脱靴李白贺知章告别课本剧.pptx
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
C语言项目之超级万年历系统源码,可以做课程设计参考 文章参考:https://www.qqmu.com/4373.html
Jupyter-Notebook
51单片机加减乘除计算器系统设计(proteus8.17,keil5),复制粘贴就可以运行
《中国房地产统计年鉴》面板数据资源-精心整理.zip
Jupyter-Notebook
Jupyter-Notebook
毕业论文答辩ppt,答辩ppt模板,共18套
Jupyter-Notebook
《中国城市统计年鉴》面板数据集(2004-2020年,最新).zip
Python基础 本节课知识点: • set的定义 • Set的解析 • set的操作 • set的函数
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
兵制与官制研究资料最新版.zip
Jupyter-Notebook
七普人口数据+微观数据+可视化+GIS矢量资源-精心整理.zip