PHP filter过滤器的基础使用
来源:互联网 发布:base64decoder 源码 编辑:程序博客网 时间:2024/05/19 22:46
过滤器可用于验证和过滤非安全来源的数据,如表单数据等。通过使用过滤器,您能够确保应有程序获得正确的输入类型,输入过滤也是最重要的安全课题之一
PHP 的过滤器函数•filter_var() - 通过一个指定的过滤器来过滤单一的变量•filter_var_array() - 通过相同的或不同的过滤器来过滤多个变量•filter_input - 获取一个输入变量,并对它进行过滤•filter_input_array - 获取多个输入变量,并通过相同的或不同的过滤器对它们进行过滤•filter_has_var() - 检查是否存在指定输入类型的变量。
filter_var()
<?php $int = 123; // 无额外过滤选项 只判定是否为整数 if(!filter_var($int, FILTER_VALIDATE_INT)) { // 输出:Integer is valid echo "Integer is not valid"; } else { echo "Integer is valid"; } // 选项和标志,属于额外过滤选项 $int_options = array( "options" => array( // 'options' 固定 "min_range" => 0, // 最小值 "max_range" => 100 // 最大值 'min_range'和'max_range' 也固定 ) ); // 过滤单一变量 即$int 增加额外过滤选项 if(!filter_var($int, FILTER_VALIDATE_INT, $int_options)) { // 输出:Integer is not valid echo "Integer is not valid"; } else { echo "Integer is valid"; } ?>
filter_has_var() 和 filter_input()
<hr> <form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>"> Email : <input type="text" name="email"> Url: <input type="text" name="url"> <input type="submit" name="submit" value="提交"> </form><hr><?php // 检查提交表单中是否含 "email" if (!filter_has_var(INPUT_POST, "email")) { echo "Input type does not exists<br>"; } else { // 检查是否为有效邮箱地址 if (!filter_input(INPUT_POST, "email", FILTER_VALIDATE_EMAIL)) { echo "E-mail is not valid<br>"; } else { echo "E-mail is valid<br>"; } } if (!filter_has_var(INPUT_POST, "url")) { echo "Input type does not exists<br>"; } else { if (!filter_input(INPUT_POST, "url", FILTER_VALIDATE_URL)) { echo $_POST['url'] . " is not valid<br>"; } else { echo $_POST['url'] . " is valid<br>"; } } ?>
filter_has_var(type, variable) 两个参数必填参数一: •INPUT_GET •INPUT_POST •INPUT_COOKIE •INPUT_SERVER •INPUT_ENV参数二:表单里的命名变量filter_input(input_type, variable, filter, options) 前两个参数必填,后两个可选填,第三个不填则使用默认过滤条件,只判断是否为字符串。参数一同上
filter_input_array()过滤多输入
<form method="get" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>"> Name: <input type="text" name="name"> Age: <input type="text" name="age"> Email: <input type="text" name="email"> <input type="submit" name="submit" value="提交"></form>$filters = array( "name" => array( "filter" => FILTER_SANITIZE_STRING ), "age" => array( "filter" => FILTER_VALIDATE_INT, "options" => array( "min_range" => 1, "max_range" => 120 ) ), "email" => FILTER_VALIDATE_EMAIL,);// 符合过滤条件返回原变量否则返回false 'INPUT_GET' 对应表单提交的 method$result = filter_input_array(INPUT_GET, $filters);if (!$result["age"]) { echo "Age must be a number between 1 and 120 .<br>";} else { echo "Age is valid.<br>";}if (!$result["email"]) { echo "Email is not valid.<br>";} else { echo "Email is valid.<br>";}if (!$result["name"]) { echo "User input is not valid.<br>";} else { echo "User input is valid.<br>";}
使用 Filter Callback
通过使用 FILTER_CALLBACK 过滤器,可以调用自定义的函数,把它作为一个过滤器来使用。这样,我们就拥有了数据过滤的完全控制权。
<?php function convertSpace($string) { // str_replace() 函数用于替换字符串 这里用空格" "替换下划线"_" 返回替换后的字符串 return str_replace("_", " ", $string); } $string = "Peter_is_a_great_guy!"; echo filter_var($string, FILTER_CALLBACK, array("options"=>"convertSpace"));// 输出:Peter is a great guy!?>
阅读全文
0 0
- PHP filter过滤器的基础使用
- vue 基础 filter 过滤器使用
- Vue 基础过滤器 filter使用
- Filter过滤器的使用
- filter过滤器的使用
- filter过滤器的使用
- filter过滤器的使用
- Filter过滤器的使用
- 过滤器filter的使用
- Filter过滤器的使用
- 过滤器的使用-Filter
- Java过滤器-Filter过滤器的使用
- filter[过滤器]的使用大全
- Filter-过滤器的使用详解
- JAVA过滤器的使用(Filter)
- Filter过滤器的简单使用
- PHP 过滤器(Filter)
- PHP 过滤器(Filter)
- innobackupex安装 详解
- 文章标题
- 判断字符串中是否存在子字符串,不区分大小写
- weak global reference table overflow (max=51200)
- TIPS_备忘
- PHP filter过滤器的基础使用
- 数据结构实验四之顺序栈
- 解决idea引入jsp标签库报500的问题
- Google离线API地图调用示例源码功能
- word转HTML 基本版
- 判断手机端和PC端的方法
- 前端知识库 code_xzh 2017-03-02 22:30:55 浏览20219 评论18 javascript html5 react 性能 HTTPS http js 浏览器 angular
- 如何写注册表文件
- hadoop之 安全模式及SafeModeException