Home  >  Article  >  Backend Development  >  PHP filter_var() 函数 Filter 函数使用详解

PHP filter_var() 函数 Filter 函数使用详解

WBOY
WBOYOriginal
2016-06-20 13:03:451394browse

php 里面 filter 函数是一个函数系列的统称,filter 系列函数里面包括 filter_var 函数。filter 系列函数是 PHP 核心的组成部分。无需安装即可使用这些函数。

他主要用于对来自非安全来源的数据(比如用户输入)进行验证和过滤。而这里面 filter_var() 函数则主要是通过指定的过滤器来过滤变量。

filter_has_var()检查是否存在指定输入类型的变量。

filter_id()返回指定过滤器的 ID 号。

filter_input()从脚本外部获取输入,并进行过滤。

filter_input_array()从脚本外部获取多项输入,并进行过滤。

filter_list()返回包含所有得到支持的过滤器的一个数组。

filter_var_array()获取多项变量,并进行过滤。

filter_var()获取一个变量,并进行过滤。

下面主要来看看 filter_var 函数的定义和用法。filter_var() 函数作用是通过指定的过滤器过滤变量。如果成功,则返回已过滤的数据,如果失败,则返回 false。语法filter_var(variable, filter, options)参数 描述variable 必需。规定要过滤的变量。 

filter 可选。规定要使用的过滤器的 ID。 
options 规定包含标志/选项的数组。检查每个过滤器可能的标志和选项。
 

至于使用什么过滤器,可参见完整的 PHP Filter 参考手册,查看可与该函数一同使用的过滤器:http://cn2.php.net/manual/zh/filter.filters.validate.php中文的解释如下:

FiltersID 名称及描述

FILTER_CALLBACK:调用用户自定义函数来过滤数据。

FILTER_SANITIZE_STRING:去除标签,去除或编码特殊字符。

FILTER_SANITIZE_STRIPPED:"string" 过滤器的别名。

FILTER_SANITIZE_ENCODED:URL-encode 字符串,去除或编码特殊字符。

FILTER_SANITIZE_SPECIAL_CHARS:HTML 转义字符 '"& 以及 ASCII 值小于 32 的字符。

FILTER_SANITIZE_EMAIL:删除所有字符,除了字母、数字以及 !#$%&'*+-/=?^_`{|}~@.[]

FILTER_SANITIZE_URL:删除所有字符,除了字母、数字以及 $-_.+!*'(),{}|\\^~[]`#%";/?:@&=

FILTER_SANITIZE_NUMBER_INT:删除所有字符,除了数字和 +-

FILTER_SANITIZE_NUMBER_FLOAT:删除所有字符,除了数字、+- 以及 .,eE。

FILTER_SANITIZE_MAGIC_QUOTES:应用 addslashes()。

FILTER_UNSAFE_RAW:不进行任何过滤,去除或编码特殊字符。

FILTER_VALIDATE_INT:在指定的范围以整数验证值。

FILTER_VALIDATE_BOOLEAN:如果是 "1", "true", "on" 以及 "yes",则返回 true,如果是 "0", "false", "off", "no" 以及 "",则返回 false。否则返回 NULL。FILTER_VALIDATE_FLOAT:以浮点数验证值。

FILTER_VALIDATE_REGEXP:根据 regexp,兼容 Perl 的正则表达式来验证值。

FILTER_VALIDATE_URL:把值作为 URL 来验证。

FILTER_VALIDATE_EMAIL:把值作为 e-mail 来验证。

FILTER_VALIDATE_IP:把值作为 IP 地址来验证。

下面是一个使用验证Email的过滤器的示例:

<p><?php</p>//利用php filter_var 函数来检验电子邮件地址的正确性<br />if(!filter_var("someone@example....com",FILTER_VALIDATE_EMAIL)){<br />	echo("不正确的Email");<br />}else{ <br />	echo("正确的Email");<br /><p>}</p>

以上结果将输出:

不正确的Email


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn