PHP强大的内置filter (二) 完

 1 <?php

 2 #Sanitize filters

 3 #Sanitize filters 可以清理掉不规范的字符

 4 # FILTER_SANITIZE_EMAIL 可以清理除了 字母和数字 以及  !#$%&'*+-/=?^_`{|}~@.[] 以外的字符  (感觉没什么用啊)

 5 $result = filter_var('这里是一个email地址[email protected]',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 ?>

 

你可能感兴趣的:(filter)