哈希空间 Ctrl + F 进行搜索
首页 php手册中文版 CSS中文手册 哈希文档 Markdown在线工具

PHP filter 组件

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

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
// 对于接受选项的过滤器,请使用此格式
$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_BOOLEANFILTER_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(", "$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'));
?>

返回值

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

范例

示例 #1 一个 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));
?>

以上例程会输出:

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

参见

打开 哈希空间 微信小程序中查看更佳