php filter_var()

定义和用法

filter_var() 函数通过指定的过滤器过滤变量。

如果成功,则返回已过滤的数据,如果失败,则返回 false。
语法

filter_var(variable, filter, options)

参数    描述
variable     必需。规定要过滤的变量。
filter     可选。规定要使用的过滤器的 ID。
options     规定包含标志/选项的数组。检查每个过滤器可能的标志和选项。
提示和注释

提示:参见完整的 PHP Filter 参考手册,查看可与该函数一同使用的过滤器。
例子

<?php
if(!filter_var("[email protected]", FILTER_VALIDATE_EMAIL))
 {
 echo("E-mail is not valid");
 }
else
 {
 echo("E-mail is valid");
 }
?>

输出类似:

E-mail is not valid

PHP Filter 简介

PHP 过滤器用于对来自非安全来源的数据(比如用户输入)进行验证和过滤。
安装

filter 函数是 PHP 核心的组成部分。无需安装即可使用这些函数。
PHP Filter 函数

PHP:指示支持该函数的最早的 PHP 版本。
函数    描述    PHP
filter_has_var()     检查是否存在指定输入类型的变量。     5
filter_id()     返回指定过滤器的 ID 号。     5
filter_input()     从脚本外部获取输入,并进行过滤。     5
filter_input_array()     从脚本外部获取多项输入,并进行过滤。     5
filter_list()     返回包含所有得到支持的过滤器的一个数组。     5
filter_var_array()     获取多项变量,并进行过滤。     5
filter_var()     获取一个变量,并进行过滤。     5
PHP Filters
ID 名称    描述
FILTER_CALLBACK     调用用户自定义函数来过滤数据。
FILTER_SANITIZE_STRING     去除标签,去除或编码特殊字符。
FILTER_SANITIZE_STRIPPED     "string" 过滤器的别名。
FILTER_SANITIZE_ENCODED     URL-encode 字符串,去除或编码特殊字符。
FILTER_SANITIZE_SPECIAL_CHARS     HTML 转义字符 ‘"<>& 以及 ASCII 值小于 32 的字符。
FILTER_SANITIZE_EMAIL     删除所有字符,除了字母、数字以及 !#$%&‘*+-/=?^_`{|}[email protected][]
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 地址来验证
分类: php
好文要顶 关注我 收藏该文 

http://www.w3school.com.cn/php/php_ref_filter.asp

时间: 2024-10-11 11:29:39

php filter_var()的相关文章

【php】用filter_var实现的简单参数验证

filter_var是在php5.2.0中开始提供的.详细说明见: http://www.php.net/manual/zh/book.filter.php 先看看代码: <?php class Utils {     /**      * 主要是调用filter_var_array验证,再扩充一个required字段来表示必填项.      * http://www.php.net/manual/zh/book.filter.php      * 注意: (可以不传,但不能传错)      *

thinkphp I方法获取不到值、filter_var

用的TP的I方法,设置I('key','',"string") 当前台传入"<>"等html标签的时间发现,I方法获取不到值,追了下Tp的代码.I方法有段这样的代码: $data   =   filter_var($data,is_int($filter) ? $filter : filter_id($filter)); 当用string过滤的时候,相当于filter_var("<ssss>",FILTER_SANITIZ

filter_var() 验证邮箱、ip、url的格式 php

验证邮箱格式的正确与否:你的第一解决方案是什么呢? 不管你们怎么思考的:反正我首先想到的就是字符串查找看是否有@符号: 但是对于结尾的.com或者.net 亦或者.cn等等越来越多的域名验证感觉棘手: 直到了某一天认真的研究了filter_var()函数的参数: 我对以前走马观花式的阅读php文档表示深深的惭愧: 其实filter_var()第二个参数传FILTER_VALIDATE_EMAIL即可验证邮箱.略加整理就如下: /** * 验证是否是邮箱 * @param  string  $em

php filter_var函数判断邮箱,url,ip格式

以前使用php的时候还不知道有过滤器filter这玩意,那时候判断邮箱.url和ip地址格式是否符合都是用正则表达式.后来随着使用的逐渐深入,才知道在php中也可以使用内置的函数库过滤器filter来完成这些功能.对于filter_var这个函数,如果验证通过则会返回验证对象,否则返回false.判断邮箱<?php$email = '[email protected]'; $result = filter_var($email, FILTER_VALIDATE_EMAIL); 判断url<?p

php filter_var[转]

ilter_var() 函数通过指定的过滤器过滤变量. 如果成功,则返回已过滤的数据,如果失败,则返回 false. 语法filter_var(variable, filter, options) variable:必需.规定要过滤的变量.  filter:可选.规定要使用的过滤器的 ID. (参见下面的FiltersID列表)options:规定包含标志/选项的数组.检查每个过滤器可能的标志和选项. <? @header('content-type:text/html;charset=utf-

PHP filter_var() 函数

定义和用法 filter_var() 函数通过指定的过滤器过滤一个变量. 如果成功,则返回被过滤的数据.如果失败,则返回 FALSE. 语法 filter_var(variable, filter, options) 参数 描述 variable 必需.规定要过滤的变量. filter 可选.规定要使用的过滤器的 ID.默认是 FILTER_SANITIZE_STRING.参见 完整的 PHP Filter 参考手册,查看可能的过滤器. 过滤器 ID 可以是 ID 名称(比如 FILTER_VA

filter_var 函数()使用javascript伪协议绕过执行xss

escape 过滤器来过滤link,而实际上这里的 escape 过滤器,是用PHP内置函数 htmlspecialchars 来实现的 htmlspecialchars 函数定义如下: htmlspecialchars:(PHP 4, PHP 5, PHP 7) 功能 :将特殊字符转换为 HTML 实体 定义 :string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string$

分享一些无特征PHP一句话

分享些不需要动态函数.不用eval.不含敏感函数.免杀免拦截的一句话.(少部分一句话需要php5.4.8+.或sqlite/pdo/yaml/memcached扩展等) 原理:https://www.leavesongs.com/PENETRATION/php-callback-backdoor.html 所有一句话使用方法基本都是: http:// target/shell.php?e=assert 密码pass 01 $e = $_REQUEST['e'];$arr = array($_PO

Laravel实现用户名或密码登录

要实现用户名或密码登录,这就要用到强大的filter_var函数 该函数通过指定的过滤器过滤变量,可以判断输入值是否是数字.是否是字符串.是否是邮箱.是否是IP等等,不用写麻烦的正则 $type = filter_var($username, FILTER_VALIDATE_EMAIL ) ? 'email' : 'username'; 然后根据$type来选择是根据用户名还是邮箱验证用户是否正确