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

PHP强大的内置filter (二) 完的更多相关文章

  1. PHP强大的内置filter (一)

    <?php #PHP内置的validate filter $input_data = True; $result = filter_var($input_data,FILTER_VALIDATE ...

  2. python---day14( 内置函数二)

    内置函数二一:匿名函数 lambda函数 lambda 表示匿名函数,不需要用def 来申明. 语法: 函数名=lambda 参数:返回值 ----〉 案例:f=lambda n:n*n 例子01: ...

  3. python函数知识六 内置函数二、匿名函数与内置函数三(重要)

    19.内置函数二 abs():绝对值 lst = [1,2,-3,1,2,-5] print([abs(i) for i in lst]) enumerate("可迭代对象",&q ...

  4. Unit05: JavaScript对象概述 、 常用内置对象一 、 常用内置对象二 、 常用内置对象三

    Unit05: JavaScript对象概述 . 常用内置对象一 . 常用内置对象二 . 常用内置对象三 常用内置对象使用演示: <!DOCTYPE html> <html> ...

  5. day 15 内置函数二 递归 lamda sorted filter map 二分法求值

    回顾 for i in dict  #对字典进行遍历,拿到的是字典的key  今日主要内容 1. lambda 匿名函数 语法: lambda 参数:返回值 不能完成复杂的操作.只能写一行 注意: 1 ...

  6. 内置函数二: map sorted filter

    -----------生活里没有奇迹,大部分的时候奇迹是你自己创造的. # -------------------------------------------------------------- ...

  7. day16:内置函数二

    1,大作业,yield 返回之后可以对数据进行处理了就,注意函数的解耦,每一个小功能写成一个函数,增强可读性,写之前自己要先把整体功能分块,先做什么,在做什么 # 现在需要对这个员工信息文件进行增删改 ...

  8. Python入门-内置函数二

    看到标题你也能猜到今天要说大概内容是什么了,没错,昨天没有说完的部分再给大家说说(有一些重合的部分),内置函数的内容比较多,并且工作中经常用到的却不太多,很多都是不太常用的,所以我就着重说一些比较常用 ...

  9. python 内置函数(二) 进阶函数 递归内容及二分法查找 知识点

    1,lambda:  匿名函数 2.sorgted()  排序函数 3,filter()   过滤函数 筛选 4,map()  映射函数 5.递归 6.二分法 一. 匿名函数: lambda lamb ...

随机推荐

  1. YTU 2614: A代码完善--系统日期

    2614: A代码完善--系统日期 时间限制: 1 Sec  内存限制: 128 MB 提交: 216  解决: 113 题目描述 注:本题只需要提交填写部分的代码,请按照C++方式提交. 已知某操作 ...

  2. opencv实现KNN手写数字的识别

    人工智能是当下很热门的话题,手写识别是一个典型的应用.为了进一步了解这个领域,我阅读了大量的论文,并借助opencv完成了对28x28的数字图片(预处理后的二值图像)的识别任务. 预处理一张图片: 首 ...

  3. java中final关键字

    一.final修饰方法 禁止任何继承类修改它的定义,保证在继承中使方法行为保持不闲并且不会被覆盖. final修饰的方法,同意编译器针对该方法的调用转为内嵌调用.(类似c++ 中的inline?) p ...

  4. Redis的过滤器(SCAN)功能

    在写另一篇文章( link )的时候,涉及到过滤器(filter)功能.以前没有接触过,整理如下. 主要参考这两篇: http://blog.csdn.net/u011510825/article/d ...

  5. 使用public key来做SSH authentication

    public key authentication(公钥认证)是对通过敲用户名.密码方式登录服务器的一种替代办法.这种方法更加安全更具有适应性,但是更难以配置. 传统的密码认证方式中,你通过证明你你知 ...

  6. window下python 扩展库安装 使用第三方镜像源

    0.前言     由于python的官方镜像位于国外,若使用pip或者easy_install安装第三方插件时或许会被限制,甚至连easy_install或pip也无法安装,例如在windows环境下 ...

  7. /bin/bash: [xxxx]: command not found

    /******************************************************************************** * /bin/bash: [xxxx ...

  8. php设计模式之观察者模式

    观察者模式:能够更便利地创建查看目标对象状态的对象,并且提供与核心对象非耦合的指定功能性. 利用这种模式可以方便地创建一个对象(观察者),其可以用来“监视”另一个对象(被观察者)的状态.这样,就可以在 ...

  9. mysql,多对多的hibernate操作对应的jdbc操作

    在hibernate中oo思想操作数据库,很方便,但是需要了解一下底层的jdbcsql是怎么写的,复习 多对多的表关系,取出,id为1的学生 订阅了哪些课程? mysql> select c_n ...

  10. Cython: 快速入门

    1. Cython是什么? 它是一个用来快速生成Python扩展模块(extention module)的工具,语法是Python和c的混血.在Cython,C里的类型,如int,float,long ...