filter_var
(PHP 5 >= 5.2.0, PHP 7, PHP 8)
filter_var — 使用特定的過濾器過濾一個變數
參數
-
value
-
要過濾的內容。注意:標量值在過濾前,會被轉換成字串。
-
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 toFILTER_UNSAFE_RAW
. This will result in no filtering taking place by default. -
options
-
一個選項的關聯陣列,或者按位區分的標示。如果過濾器接受選項,可以通過陣列的 "flags" 下標去提供這些標示。 對於回撥型的過濾器,應該傳入 callable。 這個回撥函式必須接受一個參數(即待過濾的值),並且返回一個在過濾/凈化后的值。
<?php
// 對於接受選項的過濾器,請使用此格式
$options = array(
'options' => array(
'default' => 3, // 過濾器失敗時返回的值
// 可以繼續寫過濾器接收其它選項
'min_range' => 0
),
'flags' => FILTER_FLAG_ALLOW_OCTAL,
);
$var = filter_var('0755', FILTER_VALIDATE_INT, $options);
// 對於僅接受標誌的過濾器,您可以直接將其傳遞
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
// 對於僅接受標誌的過濾器,您還可以將其作為陣列傳遞
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN,
array('flags' => FILTER_NULL_ON_FAILURE));
// 回撥型別過濾器
function foo($value)
{
// 預期值: 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'));
?>
返回值
返回過濾后的數據,如果過濾失敗則返回 false
。
範例
示例 #1 一個 filter_var() 的示例
<?php
var_dump(filter_var('[email protected]', FILTER_VALIDATE_EMAIL));
var_dump(filter_var('http://example.com', FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED));
?>
以上例程會輸出:
string(15) "[email protected]" bool(false)
參見
- filter_var_array() - 獲取多個變數並且過濾它們
- filter_input() - 通過名稱獲取特定的外部變數,並且可以通過過濾器處理它
- filter_input_array() - 獲取一系列外部變數,並且可以通過過濾器處理它們
- Types of filters