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 接受提交变量过滤类的更多相关文章

  1. php安全过滤类

    /*ansic码-Url码表: http://www.w3school.com.cn/tags/html_ref_urlencode.html ---------------------------- ...

  2. dll的概念 dll导出变量 函数 类

    1. DLL的概念 DLL(Dynamic Linkable Library),动态链接库,可以向程序提供一些函数.变量或类.这些可以直接拿来使用. 静态链接库与动态链接库的区别:   (1)静态链接 ...

  3. C++空类以及没有成员变量的类的大小

    关于C++中空类的大小为1,我们大家都有所了解,但是除了空类之外的其他一些没有成员变量的类的大小,还是有很多不明之处的. 我们来看如下一个例子: #include<iostream> us ...

  4. java类中根据已有的变量复写类的toString方法

    java类中根据已有的变量复写类的toString方法: 在该类中定义好变量之后,shift+alt+s,从出现的列表中点击gemerate toString,就会自动生成对应的toString方法.

  5. 某游戏研究之字符过滤类-WorldFilter

    所谓字符过滤器,常常用在聊天的内容,比如一连串的骂人难听的话,我们要屏蔽掉,避免造成不好的东西! 当然我作为中华天朝一个有文明有素质的人,肯定偶尔会做这样的事情啦,特别是打LOL的时候,算了不讲了,都 ...

  6. 输入值/表单提交参数过滤有效防止sql注入的方法

    输入值/表单提交参数过滤,防止sql注入或非法攻击的方法:  代码如下: /** * 过滤sql与php文件操作的关键字 * @param string $string * @return strin ...

  7. C++ static静态成员变量在类中仅仅是声明

    今天写代码时看到: 图1的3个静态成员变量在类中仅仅是声明,没有定义以及分配内存:必须在类外,图中就是cpp中,定义分配内存,才能使用

  8. go变量、类的概念以及类的使用方式,嵌套结构体

    go变量.类的概念以及类的使用方式,嵌套结构体 Go变量 go使用var声明变量,当声明变量时,这个变量对应的值总是会被初始化.这个值要么用指定的值初始化,要么用零值(即变 量类型的默认值)做初始化. ...

  9. 直接使用提交过来的类来更新字段EntityState.Modified并过滤null值的方法

    public T Update<T>(T entity) where T : ModelBase { var set = this.Set<T>(); set.Attach(e ...

随机推荐

  1. ubuntu初识

    简单的Linux系统理解 Ubuntu ctrl+alt 可以令虚拟机释放鼠标,回到主系统中. 如果ubuntu有问题,如何重装? -------直接删除目录.虚拟机内的操作不会影响到宿主机. 1.挂 ...

  2. JavaScript中基本数据类型和引用数据类型的区别(栈——堆)

    JavaScript中基本数据类型和引用数据类型的区别 1.基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型. 基本数据类型指的是简单的数据段,引用数据 ...

  3. 【模板】 RMQ求区间最值

    RMQ RMQ简单来说就是求区间的最大值(最小值) 核心算法:动态规划 RMQ(以下以求最大值为例) F[i,j]表示 从 i 开始 到i+2j -1这个区间中的最大值 状态转移方程 F[i,j]=m ...

  4. 不会 Web 开发,也能让数据“动”起来的开源项目!

    本文面向有 Python 基础的小伙伴,有 Web 基础的更好 作者:HelloGitHub-吱吱 这里是 HelloGitHub 推出的<讲解开源项目>系列,今天要向小伙伴们介绍的是一个 ...

  5. vim安装及个性化配置

    1.安装vim,并且vim命令的别名设置为vi yum install vim -y (如果不能识别vim命令,需要先安装vim) vi /etc/bashrc 或者 vi ~/.bashrc 在最后 ...

  6. 将Flink计算完毕后的数据Sink到Nebula

    Flink是目前流计算的隐形王者,在国际国内有有庞大的拥趸. Nebula是国产图数据库的后起之秀,在DBEngines中排名也逐年上升. 将两者进行结合,可以产生很多应用场景:比如实时计算服务链路调 ...

  7. 第11章:Pod数据持久化

    参考文档:https://kubernetes.io/docs/concepts/storage/volumes/ Kubernetes中的Volume提供了在容器中挂载外部存储的能力 Pod需要设置 ...

  8. 13、ssh跳板机

    13.1.前提条件: 1.跳板机服务器和其它服务器建立了ssh秘钥登录: 2.目前的环境: (1)各服务器上都建立了lc用户,并给于sudo (lc ALL= NOPASSWD:ALL )权限,lc就 ...

  9. C# datagridview 这是滚动条位置

    1.datagridview 设置 表格内容铺满,内容自动换行 dataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True; ...

  10. CentOS7-磁盘扩容(LVM-非空目录拓展卷空间大小)

    查看存储情况 $ df -kh 查看磁盘情况 $ fdisk -l 创建分区(注:可操作存储上限2TB) $ fdisk /dev/sdb 根据提示,依次输入"n","p ...