使用PHP函数过滤和验证表单输入数据。
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官方提供的过滤和验证函数,以确保安全可靠。
