PHP语法--filter

分类: 开发语言 > PHP

1、filter_has_var(type, variable)

描述:检查是否存在指定输入类型的数量

type:INPUT_GET,INPUT_POST,INPUT_COOKIE,INPUT_SERVER,INPUT_ENV

在本例中,输入变量 "name" 被发送到 PHP 页面:

<?php

if(!filter_has_var(INPUT_GET, "name"))

{

    echo("Input type does not exist");

}

else

{

    echo("Input type exists");

}

?>

2、filter_id(filter_name)

描述:返回指定过滤器的ID号

<?php

    echo(filter_id("validate_email"));

?>

3、filter_input(input_type, variable, filter, options)

描述:从脚本外部获取输入,并进行过滤

在本例中,我们使用 filter_input() 函数来过滤一个 POST 变量。所接受的 POST 变量是合法的 e-mail 地址。

<?php

if (!filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL))

{

    echo "E-Mail is not valid";

}

else

{

    echo "E-Mail is valid";

}

?>

4、filter_input_array(input_type, args)

描述:从脚本外部获取多项输入,并进行过滤

在本例中,我们使用 filter_input_array() 函数来过滤三个 POST 变量。所接受的 POST 变量是姓名、年龄以及电子邮件地址:

<?php

$filters = array (

    "name" => array (

        "filter"=>FILTER_CALLBACK,

        "flags"=>FILTER_FORCE_ARRAY,

        "options"=>"ucwords"

    ),

    "age" => array (

        "filter"=>FILTER_VALIDATE_INT,

        "options"=>array (

            "min_range"=>1,

            "max_range"=>120

        )

    ),

    "email"=> FILTER_VALIDATE_EMAIL,

);

print_r(filter_input_array(INPUT_POST, $filters));

?>

5、filter_list()

描述:返回包含所有得到支持的过滤器的一个数组

<?php

    print_r(filter_list());

?>

Array (

    [0] => int

    [1] => boolean

    [2] => float

    [3] => validate_regexp

    [4] => validate_url

    [5] => validate_email

    [6] => validate_ip

    [7] => string

    [8] => stripped

    [9] => encoded

    [10] => special_chars

    [11] => unsafe_raw

    [12] => email

    [13] => url

    [14] => number_int

    [15] => number_float

    [16] => magic_quotes

    [17] => callback

)

6、filter_var_array(array, args)

描述:获取多项变量,并进行过滤

<?php

$arr = array (

    "name" => "peter griffin",

    "age" => "41",

    "email" => "peter@example.com",

);

$filters = array (

    "name" => array (

        "filter"=>FILTER_CALLBACK,

        "flags"=>FILTER_FORCE_ARRAY,

        "options"=>"ucwords"

    ),

    "age" => array (

        "filter"=>FILTER_VALIDATE_INT,

        "options"=>array (

            "min_range"=>1,

            "max_range"=>120

        )

    ),

    "email"=> FILTER_VALIDATE_EMAIL,

);

print_r(filter_var_array($arr, $filters));

?>

7、filter_var(variable, filter, options)

描述:获取一个变量,并进行过滤

<?php

if(!filter_var("someone@example....com", FILTER_VALIDATE_EMAIL))

{

    echo("E-mail is not valid");

}

else

{

    echo("E-mail is valid");

}

?>

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 地址来验证。

 

 

来源: 发布时间:2020-03-09 20:12:56