php filter class,php filter extension

本文介绍了PHP5.2.0引入的filter_extension,该扩展简化了表单数据验证,特别是对初学者来说,有助于增强程序安全性,防止SQL注入和字符过滤不足。主要讨论了filter_data、input_get等API的使用,通过实例展示了如何过滤和获取外部变量,强调了其在处理表单提交时的作用。
摘要由CSDN通过智能技术生成

昨天说到php5.2.0新捆绑了filter extension,于是花时间看了看filter extension的介绍。filter可以极大的简化表单验证的code,尤其是对php新手而言,对提高程序的安全性很有帮助,远离sql注入和不充分的字符过滤。它目前有下面几个api:

filter_data — Filters data with a specified filter

input_filters_list — Returns a list of all supported filters

input_get_args — Gets multiple variables from outside PHP and optionally filters them

input_get — Gets variable from outside PHP and optionally filters it

input_has_variable — Checks if variable of specified type exists

input_name_to_filter — Returns the filter ID belonging to a named filter

下面拣重要的说说我的学习心得:

filter_data

filter_data的函数说明:

mixed filter_data ( mixed variable, int filter [, mixed filter_options [, string charset]] )

variable:待过滤的字符,如果是数组,则会被递归的执行过滤操作,这个是相当方便的设置

filter:过滤器的id,比如FILTER_VALIDATE_EMAIL表示过滤email,FILTER_VALIDATE_URL表示过滤url

filter_options:没看明白干嘛的,期待有高人指点

charset:字符集,暂时没用。

例子:

var_dump(filter_data('bob@example.com', FILTER_VALIDATE_EMAIL));

var_dump(filter_data('xxx.com', FILTER_VALIDATE_EMAIL));

?>

这个例子会获得类似的输出内容:

string(15) “bob@example.com”

NULL

其中字符串“xxx.com”因为不是邮件格式,因此被过滤为null

input_get

这个函数用来获取外部变量,如post,get之类的,说明:

mixed input_get ( int type, string variable_name [, int filter [, mixed flags [, string charset]]] )

type:可以是其中一种 -- INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, INPUT_ENV, INPUT_SESSION,还有一个99,目前是用来对$_REQUEST进行过滤,不知道正式版会不会有变动,暂时别用

variable_name:变量名

filter:同filter_data,缺省是FILTER_DEFAULT

flags:没看到实例,不敢胡乱揣测

charset:同filter_data

借手册上的例子说话:

$search_html = input_get(INPUT_GET, 'search', FILTER_SANITIZE_SPECIAL_CHARS);

$search_url = input_get(INPUT_GET, 'search', FILTER_SANITIZE_ENCODED);

echo "You have searched for $search_html.\n";

echo "Search again.";

?>

输出:

You have searched for Me & son.

Search again.

在上面的代码中,$_GET[‘search’]分别被两种不同过滤器过滤,产生的值也不相同,第一行的filter执行了类htmlspecialchars的操作,第二行则进行了urlencode操作

input_get_args

这个函数属于进阶的用法,如果能掌握,将大大的简化代码,使用方法类似于Pear::Validate::multiple,应该是表单提交处理的主力

php 5.1.x系列能用filter extension么

filter extension在php 5.2.0之前的版本中,在pecl.php.net就存在,可以使用pear命令行直接安装:

pear install filter

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值