filter_var

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

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

说明

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

参数

value

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

filter

要应用的过滤器 ID。过滤器类型 手册页面列出了可用的过滤器。

如果省略,将使用 FILTER_DEFAULT,默认等同于 FILTER_UNSAFE_RAW。这将导致不进行任何默认过滤。

options

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

<?php
// 对于接受选项的过滤器,请使用此格式
$options = array(
'options' => array(
'default' => 3, // 过滤器失败时返回的值

返回值

返回过滤后的数据,如果过滤失败则返回 false

示例

示例 #1 一个 filter_var() 的示例

<?php
var_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)

示例 #2 过滤数组示例

<?php
$emails
= [
"bob@example.com",
"test@example.local",
"invalidemail"
];

var_dump(filter_var($emails, FILTER_VALIDATE_EMAIL, FILTER_REQUIRE_ARRAY));
?>

以上示例会输出:

array(3) { [0]=> string(15) "bob@example.com" [1]=> string(18) "test@example.local" [2]=> bool(false) }

参见

To Top