123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- <?php
- /**
- * 删除地址参数
- *
- * @param array $param
- */
- function dropParam($param) {
- $purl = getParam();
- if (!empty($param)) {
- foreach ($param as $val) {
- $purl['param'][$val] = 0;
- }
- }
- return urldecode(url('home/'.request()->controller().'/'.request()->action(),$purl['param']));
- }
- /**
- * 替换地址参数
- *
- * @param array $param
- */
- function replaceParam($param) {
- $purl = getParam();
- if (!empty($param)) {
- foreach ($param as $key => $val) {
- $purl['param'][$key] = $val;
- }
- }
- return urldecode(url('home/'.request()->controller().'/'.request()->action(),$purl['param']));
- }
- /**
- * 替换并删除地址参数
- *
- * @param array $param
- */
- function replaceAndDropParam($paramToReplace, $paramToDrop) {
- $purl = getParam();
- if (!empty($paramToReplace)) {
- foreach ($paramToReplace as $key => $val) {
- $purl['param'][$key] = $val;
- }
- }
- if (!empty($paramToDrop)) {
- foreach ($paramToDrop as $val) {
- $purl['param'][$val] = 0;
- }
- }
- return urldecode(url('home/'.request()->controller().'/'.request()->action(),$purl['param']));
- }
- /**
- * 删除部分地址参数
- *
- * @param array $param
- */
- function removeParam($param) {
- $purl = getParam();
- if (!empty($param)) {
- foreach ($param as $key => $val) {
- if (!isset($purl['param'][$key])) {
- continue;
- }
- $tpl_params = explode('_', $purl['param'][$key]);
- foreach ($tpl_params as $k => $v) {
- if ($val == $v) {
- unset($tpl_params[$k]);
- }
- }
- if (empty($tpl_params)) {
- $purl['param'][$key] = 0;
- } else {
- $purl['param'][$key] = implode('_', $tpl_params);
- }
- }
- }
- return urldecode(url('home/'.request()->controller().'/'.request()->action(),$purl['param']));
- }
- function getParam() {
- $param = input('param.');
- $purl = array();
- unset($param['page']);
- $param=str_replace('/','+',$param);
- SafeFilter($param);
- $purl['param'] = $param;
- return $purl;
- }
- function SafeFilter (&$arr)
- {
-
- $ra=Array('/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/','/script/','/javascript/','/vbscript/','/expression/','/applet/','/meta/','/xml/','/blink/','/link/','/style/','/embed/','/object/','/frame/','/layer/','/title/','/bgsound/','/base/','/onload/','/onunload/','/onchange/','/onsubmit/','/onreset/','/onselect/','/onblur/','/onfocus/','/onabort/','/onkeydown/','/onkeypress/','/onkeyup/','/onclick/','/ondblclick/','/onmousedown/','/onmousemove/','/onmouseout/','/onmouseover/','/onmouseup/','/onunload/');
-
- if (is_array($arr))
- {
- foreach ($arr as $key => $value)
- {
- $new_key=$key;
- if (!is_array($value))
- {
- if (!get_magic_quotes_gpc())//不对magic_quotes_gpc转义过的字符使用addslashes(),避免双重转义。
- {
- $new_key=addslashes($new_key);
- $value = addslashes($value); //给单引号(')、双引号(")、反斜线(\)与NUL(NULL字符)加上反斜线转义
- }
- $new_key=preg_replace($ra,'',$new_key);
- $value = preg_replace($ra,'',$value); //删除非打印字符,粗暴式过滤xss可疑字符串
- $new_key=htmlentities(strip_tags($new_key));
- unset($arr[$key]);
- $arr[$new_key] = htmlentities(strip_tags($value)); //去除 HTML 和 PHP 标记并转换为HTML实体
- }
- else
- {
- SafeFilter($arr[$key]);
- }
- }
- }
- }
- ?>
|