以下是一些常见的用法:
使用 filter_var() 过滤标量值:
$email = "user@example.com";
// 使用 FILTER_VALIDATE_EMAIL 过滤和验证电子邮件地址
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Valid email address.";
} else {
echo "Invalid email address.";
}
使用 filter_input() 从输入获取并过滤值:
// 假设你期望从 GET 请求中获取一个整数
$userID = filter_input(INPUT_GET, 'user_id', FILTER_VALIDATE_INT);
if ($userID !== null && $userID !== false) {
echo "Valid user ID: $userID";
} else {
echo "Invalid user ID";
}
使用 filter_input_array() 处理多个输入:
// 定义输入规则
$filters = array(
'username' => FILTER_SANITIZE_STRING,
'email' => FILTER_VALIDATE_EMAIL,
'age' => array(
'filter' => FILTER_VALIDATE_INT,
'options' => array('min_range' => 1, 'max_range' => 120)
),
);
// 获取并过滤输入
$input = filter_input_array(INPUT_POST, $filters);
// 检查是否有无效输入
if (in_array(false, $input, true)) {
echo "Invalid input detected.";
} else {
echo "Valid input: " . print_r($input, true);
}
使用 filter_var_array() 处理多个值:
// 定义一组值
$values = array(
'email' => 'user@example.com',
'age' => 25,
'url' => 'http://www.example.com'
);
// 定义过滤规则
$filters = array(
'email' => FILTER_VALIDATE_EMAIL,
'age' => array(
'filter' => FILTER_VALIDATE_INT,
'options' => array('min_range' => 1, 'max_range' => 120)
),
'url' => FILTER_VALIDATE_URL
);
// 获取并过滤值
$result = filter_var_array($values, $filters);
// 检查是否有无效值
if (in_array(false, $result, true)) {
echo "Invalid value detected.";
} else {
echo "Valid values: " . print_r($result, true);
}
在上述示例中,FILTER_SANITIZE_STRING 用于删除字符串中的非法字符,FILTER_VALIDATE_EMAIL 用于验证电子邮件地址,FILTER_VALIDATE_INT 用于验证整数,并可以设置范围。其他的过滤器和选项也可以根据你的需求进行使用。
确保在实际应用中结合其他安全性措施,比如预处理语句,以保护你的应用免受 SQL 注入、XSS 等攻击。
转载请注明出处:http://www.pingtaimeng.com/article/detail/13856/PHP