PHP 接受提交变量过滤类
Filter.class.php :
1 <?php
2 class Filter{
3
4 /**
5 * 将\n转化为<br/>
6 *
7 * @param string $string 待转换的字符串
8 * @return string
9 */
10 static public function nl2br($string){
11 return nl2br($string);
12 }
13
14 /**
15 * 将<br/>转化为\n
16 *
17 * @param string $string 待转换的字符串
18 * @return string
19 */
20 static public function br2nl($string){
21 $array = array('<br>', '<br/>');
22 return str_replace($array, "\n", $string);
23 }
24
25 /**
26 * 多个连续空格只保留一个
27 * @param $string 待转换的字符串
28 * @return mixed
29 */
30 static public function mergeSpaces($string){
31 return preg_replace("/\s(?=\s)/","\\1", $string);
32 }
33
34 /**
35 * 过滤字符串中开头和结尾的特定字符
36 * @param string $string 待转换的字符串
37 * @param string $char_list 要转换的特定字符列表
38 * @return string
39 */
40 static public function trim($string, $char_list='\\\\s'){
41
42 $chars = preg_replace(
43 array( '/[\^\-\]\\\]/S', '/\\\{4}/S', '/\//'),
44 array( '\\\\\\0', '\\', '\/' ),
45 $char_list);
46 $pattern = '^[' . $chars . ']*|[' . $chars . ']*';
47
48 return preg_replace("/$pattern/sSD", '', $string);
49 }
50
51 /**
52 * 过滤特殊字符
53 *
54 * @param string $string 待转换的字符串
55 * @return string
56 */
57 static public function filterSpecial($string)
58 {
59 $search = array (
60 "'<script[^>]*?>.*?</script>'si", // 去掉 javascript
61 "'([\r\n\s])'", // 去掉空白字符
62 "'(\')'" // 替换英文'为中文’
63 );
64
65 $replace = array ("","","’",);
66
67 return preg_replace ($search, $replace, $string);
68 }
69
70 /**
71 * 过滤HTML标记
72 *
73 * @param string $string 需过滤内容
74 * @return string
75 */
76 static public function filterHtml($string)
77 {
78 $search = array (
79 "'<script[^>]*?>.*?</script>'si", // 去掉 javascript
80 "'<[\/\!]*?[^<>]*?>'si", // 去掉 HTML 标记
81 "'([\r\n\s])'" , // 去掉空白字符
82 "'(\')'" // 替换英文'为中文’
83 );
84
85 $replace = array ("","","","’");
86
87 return preg_replace ($search, $replace, $string);
88 }
89
90 /**
91 * 过滤字符串
92 * @param string $string 待转换的字符串
93 * @return string
94 */
95 static public function filterString($string)
96 {
97
98 $search = array (
99 "'<script[^>]*?>.*?</script>'si",
100 "'<[\/\!]*?[^<>]*?>'si",
101 "'[\r\n]|[\s]+'",
102 "'&(lt|#60);'i",
103 "'\''",
104 "'&(gt|#62);'i",
105 "'[<]|[>]'",
106 "'delete'i",
107 "'update'i",
108 "'sele'i",
109 "'insert'i",
110 "'into'i",
111 "'where'i",
112 "'set'i",
113 "'from'i",
114 "'script'i",
115 "'value'i",
116 "'exe'i",
117 "'localgroup'i",
118 "'chr'i",
119 "'truncate'i",
120 "'sysobjects'i",
121 "'syscolumns'i",
122 "'master'i",
123 "'/add'i",
124 "'cmdshell'i",
125 "'drop'i",
126 "'\\\'");
127
128 $replace = array("");
129
130 return preg_replace($search, $replace,$string);
131 }
132
133 static public function filterContent($string)
134 {
135 $search = array ("'<script[^>]*?>.*?</script>'si", // 去掉 javascript
136 "'\''",
137 "'&(lt|#60);'i",
138 "'&(gt|#62);'i",
139 "'delete'i",
140 "'update'i",
141 "'into'i",
142 "'where'i",
143 "'set'i",
144 "'sele'i",
145 "'insert'i",
146 "'from'i",
147 "'value'i",
148 "'exe'i",
149 "'localgroup'i",
150 "'chr'i",
151 "'truncate'i",
152 "'sysobjects'i",
153 "'syscolumns'i",
154 "'master'i",
155 "'/add'i",
156 "'cmdshell'i",
157 "'drop'i",
158 "'\\\'");
159
160 $replace = array ("");
161
162 return preg_replace($search, $replace, $string);
163 }
164
165 static public function filterEditor($string){
166
167 $search = array (
168 "'<[\/\!]*?span[^<>]*?>'si", // 去掉 span
169 "'<[\/\!]*?div[^<>]*?>'si", // 去掉 div
170 );
171
172 $replace = array ("");
173
174 return preg_replace($search, $replace, $string);
175 }
176 }
177 ?>
//php 页面调用
pc_base::load_app_class('Filter','user');
$wxid = !empty($_REQUEST['wxid']) ? Filter::filterString($_REQUEST['wxid']) : '';
PHP 接受提交变量过滤类的更多相关文章
- php安全过滤类
/*ansic码-Url码表: http://www.w3school.com.cn/tags/html_ref_urlencode.html ---------------------------- ...
- dll的概念 dll导出变量 函数 类
1. DLL的概念 DLL(Dynamic Linkable Library),动态链接库,可以向程序提供一些函数.变量或类.这些可以直接拿来使用. 静态链接库与动态链接库的区别: (1)静态链接 ...
- C++空类以及没有成员变量的类的大小
关于C++中空类的大小为1,我们大家都有所了解,但是除了空类之外的其他一些没有成员变量的类的大小,还是有很多不明之处的. 我们来看如下一个例子: #include<iostream> us ...
- java类中根据已有的变量复写类的toString方法
java类中根据已有的变量复写类的toString方法: 在该类中定义好变量之后,shift+alt+s,从出现的列表中点击gemerate toString,就会自动生成对应的toString方法.
- 某游戏研究之字符过滤类-WorldFilter
所谓字符过滤器,常常用在聊天的内容,比如一连串的骂人难听的话,我们要屏蔽掉,避免造成不好的东西! 当然我作为中华天朝一个有文明有素质的人,肯定偶尔会做这样的事情啦,特别是打LOL的时候,算了不讲了,都 ...
- 输入值/表单提交参数过滤有效防止sql注入的方法
输入值/表单提交参数过滤,防止sql注入或非法攻击的方法: 代码如下: /** * 过滤sql与php文件操作的关键字 * @param string $string * @return strin ...
- C++ static静态成员变量在类中仅仅是声明
今天写代码时看到: 图1的3个静态成员变量在类中仅仅是声明,没有定义以及分配内存:必须在类外,图中就是cpp中,定义分配内存,才能使用
- go变量、类的概念以及类的使用方式,嵌套结构体
go变量.类的概念以及类的使用方式,嵌套结构体 Go变量 go使用var声明变量,当声明变量时,这个变量对应的值总是会被初始化.这个值要么用指定的值初始化,要么用零值(即变 量类型的默认值)做初始化. ...
- 直接使用提交过来的类来更新字段EntityState.Modified并过滤null值的方法
public T Update<T>(T entity) where T : ModelBase { var set = this.Set<T>(); set.Attach(e ...
随机推荐
- SpringBoot和Spring到底有没有本质的不同?
现在的Spring相关开发都是基于SpringBoot的.最后在打包时可以把所有依赖的jar包都打进去,构成一个独立的可执行的jar包.如下图: 使用java -jar命令就可以运行这个独立的jar包 ...
- 【题解】hdu 3586 Information Disturbing 二分 树形dp
题目描述 Information DisturbingTime Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/65536 K (Java ...
- 【dp】背包问题
01背包 呐,为什么叫它01背包呢,因为装进去就是1,不装进去就是0.所以针对每个物品就两种状态,装,不装(请允许我用这么老套的开篇,相信听过很多次背包讲解的人,大多都是这个开篇的)所以咯,我这个背包 ...
- 【Java】equals 和 == 的区别
之前有在 Java字符串比较(3种方法)以及对比 C++ 时的注意项 中写过一点关于 equals()与==的比较,但最近的Java考试复习过程中发现有部分情况没涉及到,故重新学习一下 在编写代码的时 ...
- 如何设置Python环境变量
大家好,我是Yivies.相信很多python的初学者们在进行一顿下一步下一步的安装之后,在windows command命令行输入python的时候会出现这样的情况: 可我们希望它是这样子的: 其实 ...
- excel VBA使用教程
1.选择文件--选项 2.选择自定义功能区--开发工具的√勾上
- ASP.Net Core Configuration 理解与源码分析
Configuration 在ASP.NET Core开发过程中起着很重要的作用,这篇博客主要是理解configuration的来源,以及各种不同类型的configuration source是如何被 ...
- [源码解析] 深度学习分布式训练框架 horovod (10) --- run on spark
[源码解析] 深度学习分布式训练框架 horovod (10) --- run on spark 目录 [源码解析] 深度学习分布式训练框架 horovod (10) --- run on spark ...
- 9.4、安装zabbix(1)
1.什么是zabbix: zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案: zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以 ...
- 配置Oracle遇到问题<一>
1, 将D:\app\product\11.2.0\dbhome_1\NETWORK复制到D:\app\product\instantclient_11_2.为了处理: 12154错误,不过没有解决. ...