欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP filter_var 函数用法

程序员文章站 2022-04-14 17:08:24
先介绍下PHP Filter PHP手册地址:http://php.net/manual/zh/ref.filter.php PHP 过滤器用于对来自非安全来源的数据(比如用户输入)进行验证和过滤。 先介绍下PHP Filter PHP手册地址:http://php.net/manual/zh/re ......

先介绍下php filter 

php手册地址:http://php.net/manual/zh/ref.filter.php

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 删除所有字符,除了字母、数字以及 !#$%&'*+-/=?^_`{|}~@.[]
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 地址来验证

 

filter_var — 使用特定的过滤器过滤一个变量

定义和用法

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

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

语法

                                                                         filter_var(variable, filter, options)
参数 描述
variable 必需。规定要过滤的变量。
filter 可选。规定要使用的过滤器的 id。
options 规定包含标志/选项的数组。检查每个过滤器可能的标志和选项。

例如:

                  if(filter_var($url, filter_validate_url)){
                         return true;
                              }