PHP强大的内置filter (二) 完

 1 <?php
 2 #Sanitize filters
 3 #Sanitize filters 可以清理掉不规范的字符
 4 # FILTER_SANITIZE_EMAIL 可以清理除了 字母和数字 以及  !#$%&'*+-/=?^_`{|}~@.[] 以外的字符  (感觉没什么用啊)
 5 $result = filter_var('这里是一个email地址asdjaslkd@sdjkasdj.com',FILTER_SANITIZE_EMAIL);
 6 var_dump($result);
 7 # FILTER_SANITIZE_ENCODED 处理URL编码 有4个flags
 8 # FILTER_FLAG_STRIP_LOW - 去除 ASCII 值在 32 以下的字符
 9 # FILTER_FLAG_STRIP_HIGH - 去除 ASCII 值在 32 以上的字符
10 # FILTER_FLAG_ENCODE_LOW - 编码 ASCII 值在 32 以下的字符
11 # FILTER_FLAG_ENCODE_HIGH - 编码 ASCII 值在 32 以上的字符
12 # 感觉还是urlencode函数更实用
13 $result = filter_var('http://www.longxiao7.com',FILTER_SANITIZE_ENCODED);
14 var_dump($result);
15 # FILTER_SANITIZE_MAGIC_QUOTES  等同于  addslashes 函数
16 # FILTER_SANITIZE_NUMBER_FLOAT 删除浮点数中所有非法的字符 此FILTER可能存在的flags如下
17 # FILTER_FLAG_ALLOW_FRACTION  允许小数部分
18 # FILTER_FLAG_ALLOW_THOUSAND  允许千分位计数
19 # FILTER_FLAG_ALLOW_SCIENTIFIC 允许科学计数
20 $result = filter_var('0.54548',FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_FRACTION);
21 var_dump($result);
22 $result = filter_var('1000,000,000',FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_THOUSAND);
23 var_dump($result);
24 $result = filter_var('1E20',FILTER_SANITIZE_NUMBER_FLOAT,FILTER_FLAG_ALLOW_SCIENTIFIC);
25 var_dump($result);
26 # FILTER_SANITIZE_NUMBER_INT 过滤整数以外的字符
27 $result = filter_var('54548)*)(……&*%6554……¥测试字符.055',FILTER_SANITIZE_NUMBER_INT);
28 var_dump($result);
29 # FILTER_SANITIZE_SPECIAL_CHARS  处理HTML转义字符 '"<>& 以及 ASCII 值小于 32 的字符
30 # flags
31 # FILTER_FLAG_STRIP_LOW - 去除 ASCII 值在 32 以下的字符
32 # FILTER_FLAG_STRIP_HIGH - 去除 ASCII 值在 32 以上的字符
33 # FILTER_FLAG_ENCODE_HIGH - 编码 ASCII 值在 32 以上的字符
34 $result = filter_var('<script>alert(\'&nbsp;中文\')</script>',FILTER_SANITIZE_SPECIAL_CHARS);
35 var_dump($result);
36 # FILTER_SANITIZE_FULL_SPECIAL_CHARS 上面那个加强版?貌似和htmlspecialchars函数是一样的
37 #FILTER_SANITIZE_STRING 过滤器去除或编码不需要的字符。
38 # flags
39 # FILTER_FLAG_NO_ENCODE_QUOTES - 该标志不编码引号
40 # FILTER_FLAG_STRIP_LOW - 去除 ASCII 值在 32 以下的字符
41 # FILTER_FLAG_STRIP_HIGH - 去除 ASCII 值在 32 以上的字符
42 # FILTER_FLAG_ENCODE_LOW - 编码 ASCII 值在 32 以下的字符
43 # FILTER_FLAG_ENCODE_HIGH - 编码 ASCII 值在 32 以上的字符
44 # FILTER_FLAG_ENCODE_AMP - 把 & 字符编码为 &amp;
45 $result = filter_var('<script>alert(\'&nbsp;中文\')</a>',FILTER_SANITIZE_STRING,FILTER_FLAG_ENCODE_AMP);
46 var_dump($result);
47 # FILTER_SANITIZE_URL 可以清理除了 字母和数字 以及 $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=以外的字符
48 # FILTER_UNSAFE_RAW 感觉意义不大,需要配合flags才能工作 详见PHP手册
49 ?>

 

posted @ 2014-03-28 18:43 透明白 阅读(...) 评论(...) 编辑 收藏