Php/docs/function.filter-var

来自菜鸟教程
跳转至:导航、​搜索

filter_var

(PHP 5 >= 5.2.0, PHP 7)

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


说明

filter_var ( mixed $variable [, int $filter = FILTER_DEFAULT [, mixed $options ]] ) : mixed

参数

variable

待过滤的变量。注意:标量的值在过滤前,会被转换成字符串

filter

The ID of the filter to apply. The Types of filters manual page lists the available filters.

If omitted, FILTER_DEFAULT will be used, which is equivalent to FILTER_UNSAFE_RAW. This will result in no filtering taking place by default.

options

一个选项的关联数组,或者按位区分的标示。如果过滤器接受选项,可以通过数组的 "flags" 位去提供这些标示。 对于回调型的过滤器,应该传入 callable。这个回调函数必须接受一个参数,即待过滤的值,并且 返回一个在过滤/净化后的值。

<?php// for filters that accept options, use this format$options = array(    'options' => array(        'default' => 3, // value to return if the filter fails        // other options here        'min_range' => 0    ),    'flags' => FILTER_FLAG_ALLOW_OCTAL,);$var = filter_var('0755', FILTER_VALIDATE_INT, $options);// for filter that only accept flags, you can pass them directly$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);// for filter that only accept flags, you can also pass as an array$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN,                  array('flags' => FILTER_NULL_ON_FAILURE));// callback validate filterfunction foo($value){    // Expected format: Surname, GivenNames    if (strpos($value, ", ") === false) return false;    list($surname, $givennames) = explode(", ", $value, 2);    $empty = (empty($surname) || empty($givennames));    $notstrings = (!is_string($surname) || !is_string($givennames));    if ($empty || $notstrings) {        return false;    } else {        return $value;    }}$var = filter_var('Doe, Jane Sue', FILTER_CALLBACK, array('options' => 'foo'));?>


返回值

Returns the filtered data, or false if the filter fails.


范例

Example #1 一个 filter_var() 的例子

<?phpvar_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));var_dump(filter_var('http://example.com', FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED));?>

以上例程会输出:


string(15) "bob@example.com"
bool(false)

参见