= 5.2.0, PHP 7, PHP 8)filter_var — 使用特定的過(guò)濾器過(guò)濾一個(gè)變量說(shuō)明filter_var(mixed $value, int $filter = FILTER_DEFAULT, array|int $options = 0): m">

filter_var

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

filter_var使用特定的過(guò)濾器過(guò)濾一個(gè)變量

說(shuō)明

filter_var(mixed $value, int $filter = FILTER_DEFAULT, array|int $options = 0): mixed

參數(shù)

value

要過(guò)濾的內(nèi)容。注意:標(biāo)量值在過(guò)濾前,會(huì)被轉(zhuǎn)換成字符串

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

一個(gè)選項(xiàng)的關(guān)聯(lián)數(shù)組,或者按位區(qū)分的標(biāo)示。如果過(guò)濾器接受選項(xiàng),可以通過(guò)數(shù)組的 "flags" 下標(biāo)去提供這些標(biāo)示。 對(duì)于回調(diào)型的過(guò)濾器,應(yīng)該傳入 callable。 這個(gè)回調(diào)函數(shù)必須接受一個(gè)參數(shù)(即待過(guò)濾的值),并且返回一個(gè)在過(guò)濾/凈化后的值。

<?php
// 對(duì)于接受選項(xiàng)的過(guò)濾器,請(qǐng)使用此格式
$options = array(
    
'options' => array(
        
'default' => 3// 過(guò)濾器失敗時(shí)返回的值
        // 可以繼續(xù)寫過(guò)濾器接收其它選項(xiàng)
        
'min_range' => 0
    
),
    
'flags' => FILTER_FLAG_ALLOW_OCTAL,
);
$var filter_var('0755'FILTER_VALIDATE_INT$options);
// 對(duì)于僅接受標(biāo)志的過(guò)濾器,您可以直接將其傳遞
$var filter_var('oops'FILTER_VALIDATE_BOOLEANFILTER_NULL_ON_FAILURE);
// 對(duì)于僅接受標(biāo)志的過(guò)濾器,您還可以將其作為數(shù)組傳遞
$var filter_var('oops'FILTER_VALIDATE_BOOLEAN,
                  array(
'flags' => FILTER_NULL_ON_FAILURE));
// 回調(diào)類型過(guò)濾器
function foo($value)
{
    
// 預(yù)期值: Surname, GivenNames
    
if (strpos($value", ") === false) return false;
    list(
$surname$givennames) = explode(", "$value2);
    
$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'));
?>

返回值

返回過(guò)濾后的數(shù)據(jù),如果過(guò)濾失敗則返回 false 。

范例

示例 #1 一個(gè) filter_var() 的示例

<?php
var_dump
(filter_var('bob@example.com'FILTER_VALIDATE_EMAIL));
var_dump(filter_var('http://example.com'FILTER_VALIDATE_URLFILTER_FLAG_PATH_REQUIRED));
?>

以上例程會(huì)輸出:

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

參見