欢迎访问宙启技术站
智能推送

使用PHP函数过滤和验证表单输入数据。

发布时间:2023-06-20 11:46:43

PHP中提供了许多函数用于过滤和验证表单输入数据。

一、过滤函数

1. filter_var:对标量(integer, float, string)进行过滤

filter_var(mixed $value, int $filter = FILTER_DEFAULT, mixed $options = NULL) 

示例:

$input = $_POST['email'];

if (filter_var($input, FILTER_VALIDATE_EMAIL)) {

    echo "$input is a valid email address";

} else {

    echo "$input is not a valid email address";

}

2. filter_input:对输入变量进行过滤

filter_input(int $type, string $variable_name, int $filter = FILTER_DEFAULT, mixed $options = NULL) 

示例:

$input = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);

if ($input) {

    echo "$input is a valid email address";

} else {

    echo "$input is not a valid email address";

}

3. filter_input_array:对输入变量数组进行过滤

filter_input_array(int $type, mixed $definition = NULL, bool $add_empty = true) 

示例:

$input = filter_input_array(INPUT_POST, [

    'email' => FILTER_VALIDATE_EMAIL,

    'age' => FILTER_VALIDATE_INT

]);

if ($input['email']) {

    echo $input['email'] . " is a valid email address

";

}

if ($input['age']) {

    echo $input['age'] . " is a valid age

";

}

4. filter_var_array:对数组进行过滤

filter_var_array(array $data, mixed $definition = NULL, bool $add_empty = true) 

示例:

$data = [

    'email' => 'test@test.com',

    'age' => '20'

];

$validatedData = filter_var_array($data, [

    'email' => FILTER_VALIDATE_EMAIL,

    'age' => FILTER_VALIDATE_INT

]);

if ($validatedData['email']) {

    echo $validatedData['email'] . " is a valid email address

";

}

if ($validatedData['age']) {

    echo $validatedData['age'] . " is a valid age

";

}

二、验证函数

1. FILTER_VALIDATE_EMAIL:验证邮件地址是否合法

示例:

$email = "someone@example.com";

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {

    echo "$email is a valid email address";

} else {

    echo "$email is not a valid email address";

}

2. FILTER_VALIDATE_BOOLEAN:验证布尔值是否合法

示例:

$input = "false";

if (filter_var($input, FILTER_VALIDATE_BOOLEAN)) {

    echo "$input is a valid boolean";

} else {

    echo "$input is not a valid boolean";

}

3. FILTER_VALIDATE_INT:验证整数是否合法

示例:

$input = "10";

if (filter_var($input, FILTER_VALIDATE_INT)) {

    echo "$input is a valid integer";

} else {

    echo "$input is not a valid integer";

}

4. FILTER_VALIDATE_FLOAT:验证浮点数是否合法

示例:

$input = "10.5";

if (filter_var($input, FILTER_VALIDATE_FLOAT)) {

    echo "$input is a valid float";

} else {

    echo "$input is not a valid float";

}

5. FILTER_VALIDATE_URL:验证URL是否合法

示例:

$url = "http://www.example.com";

if (filter_var($url, FILTER_VALIDATE_URL)) {

    echo "$url is a valid URL";

} else {

    echo "$url is not a valid URL";

}

6. preg_match:使用正则表达式验证输入字符串是否符合要求

示例:

$input = $_POST['email'];

if (preg_match("/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/", $input)) {

    echo "$input is a valid email address";

} else {

    echo "$input is not a valid email address";

}

以上是PHP中常用的过滤和验证函数,开发者可以根据具体的需求进行选择。建议使用PHP官方提供的过滤和验证函数,以确保安全可靠。