过滤转型
2015-07-23 23:07
239 查看
$sigs=array( 'prod_id'=>array('required'=>true,'type'=>'int'), 'desc'=>array('required'=>true,'type'=>'string','function'=>'addcslashes') ); sanitize_vars(&$_GET,$sigs); function sanitize_vars(&$vars,$signatures,$redir_url=null) { $tmp=array(); // 遍历这些符号并且把它们添加到临时数组$tmp foreach($signatures as $name => $sig) { if(!isset($vars[$name]) && isset($sig['required']) && $sig['required']) { // 如果变量在数组不存在,则重定向 if($redir_url) { header("Location: $redir_url"); }else { echo "Parameter $name not present and no redirect URL"; } exit(); } $tmp[$name]=$vars[$name]; if(isset($sig['type'])) { settype($tmp[$name], $sig['type']); } // 用指定函数对变量进行操作,可以使用标准的php函数,或者使用自己定义的处理函数 if(isset($sig['function'])) { $tmp[$name]={$sig['function']}($tmp[$name]); } } $vars=$tmp; }
相关文章推荐
- extjs研究学习笔记《一》
- minisat 安装指南
- UVA11997 K Smallest Sums(并归,优先队列)
- spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件)
- iOS推送 (百度推送)
- C++中L和_T()之区别
- MyBatis知多少(16)MyBatis映射
- 部署Exchange Server 2016 Preview
- 部署Exchange Server 2016 Preview
- Linux kernel 分析之二十三:文件系统
- C++标志粘贴##怎么使用
- boost库常用功能
- 股票学习(技术分析05)
- 文件打包与解压缩
- java RMI
- Java Beans
- *HDU 5305 - Friends (DFS + 剪枝)
- 第一百一十二天 how can I 坚持
- Nginx 笔记与总结(3)配置虚拟主机
- SUSE Linux源码编译安装MySQL 5.6