当前位置: 网学 > 编程文档 > PHP > 正文

php 过滤器实现代码

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/06/21
外部来源的数据:
复制代码 代码如下:
if(filter_has_var(INPUT_GET, ''age''))
{
echo filter_input(INPUT_GET, ''age'', FILTER_VALIDATE_INT) ? ''is valid'' : ''is not valid'';
}

相较于filter_var,filter_input多了一个参数(第一个参数)用于指定数据的来源。而filter_has_var()而用来判断是否存在指定的数据。

一次过滤多个数据
PHP还提供了filter_var_array和filter_input_array函数用于一次性验证多个数据。

这是来自php.net上的一个实例,用于说明filter_var_array()怎么使用。
复制代码 代码如下:
$data = array(
''product_id'' => ''libgd<script>'',
''component'' => ''10'',
''versions'' => ''2.0.33'',
''testscalar'' => array(''2'', ''23'', ''10'', ''12''),
''testarray'' => ''2'',
);

$args = array(
''product_id'' => FILTER_SANITIZE_ENCODED,
''component'' => array(''filter'' => FILTER_VALIDATE_INT,
''flags'' => FILTER_FORCE_ARRAY,
''options'' => array(''min_range'' => 1, ''max_range'' => 10)
),
''versions'' => FILTER_SANITIZE_ENCODED,
''doesnotexist'' => FILTER_VALIDATE_INT,
''testscalar'' => array(
''filter'' => FILTER_VALIDATE_INT,
''flags'' => FILTER_REQUIRE_SCALAR,
),
''testarray'' => array(
''filter'' => FILTER_VALIDATE_INT,
''flags'' => FILTER_FORCE_ARRAY,
)
);
$myinputs = filter_var_array($data, $args);

自定义过滤器
可以通过传递一个特殊的过滤器FILTER_CALLBACK来指定一个自定义的过滤器,下面这个过滤器将把所有邮箱地址的@转换成#。
复制代码 代码如下:
function fun($value)
{
return strtr($value,''@'',''#'');
}
$var = filter_var(''abc@caixw.com'', FILTER_CALLBACK, array(''options'' => ''fun''));
echo $var;

其它

ID
(过滤器常量)
名称
(filter_list()函数返回的名称)
可用选项标志位描述
Validating
FILTER_VALIDATE_BOOLEAN"boolean"FILTER_NULL_ON_FAILURE当难的数据为"1","true","on","yes"时返回true,否则返回false。当设置了FILTER_NULL_ON_FAILURE标志位,则仅在值是"0","false","off","no", 和""是返回false,其它非true值返回null。
FILTER_VALIDATE_EMAIL"validate_email"验证邮箱
FILTER_VALIDATE_FLOAT"float"decimalFILTER_FLAG_ALLOW_THOUSAND验证浮点数
FILTER_VALIDATE_INT"int"min_range, max_rangeFILTER_FLAG_ALLOW_OCTAL, FILTER_FLAG_ALLOW_HEX 验证一个指定范围内的整数值
FILTER_VALIDATE_IP"validate_ip"FILTER_FLAG_IPV4, FILTER_FLAG_IPV6, FILTER_FLAG_NO_PRIV_RANGE, FILTER_FLAG_NO_RES_RANGE 验证IP地址
FILTER_VALIDATE_REGEXP"validate_regexp"regexp验证一个正则表达式
FILTER_VALIDATE_URL"validate_url"FILTER_FLAG_PATH_REQUIRED, FILTER_FLAG_QUERY_REQUIRED 验证一个URL
Sanitizing
FILTER_SANITIZE_EMAIL"email"移除除英文字符,数字以及!#$%&''*+-/=?^_`{|}~@.[]之外的字符。
FILTER_SANITIZE_ENCODED"encoded"FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH URL编码字符串,去除或编码指定字符串。
FILTER_SANITIZE_MAGIC_QUOTES"magic_quotes"应用 addslashes()函数
FILTER_SANITIZE_NUMBER_FLOAT"number_float"FILTER_FLAG_ALLOW_FRACTION, FILTER_FLAG_ALLOW_THOUSAND, FILTER_FLAG_ALLOW_SCIENTIFIC 移除除数字,+-以及.,eE以外的字符
FILTER_SANITIZE_NUMBER_INT"number_int"移除除数字以及+-以外的字符
FILTER_SANITIZE_SPECIAL_CHARS"special_chars"FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_HIGH HTML转义字符,''"&><以及 ASCII 值小于 32 的字符。以及其它指定的字符。
FILTER_SANITIZE_STRING"string"FILTER_FLAG_NO_ENCODE_QUOTES, FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP 去除标签,或是去除或编码指定的字符。
FILTER_SANITIZE_STRIPPED"stripped"Alias of "string" filter.
FILTER_SANITIZE_URL"url"删除所有字符除字母、数字以及$-_.+!*''(),{}|\\^~[]`<>#%";/?:@&=
FILTER_UNSAFE_RAW"unsafe_raw"FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP 不做任何改变,或是按标志位去除或是编码指定字母。
FILTER_CALLBACK"callback"FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP 自定义过滤器

  • 下一篇资讯: PHP 截取字符串专题集合
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号