PHP数据传输获取CLASS类GET/POST

时间:2020-03-24
本文章向大家介绍PHP数据传输获取CLASS类GET/POST,主要包括PHP数据传输获取CLASS类GET/POST使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

代码是N年前第一次接触php时,一个小伙伴给我写的,一直用到现在,今天需要稍微丰富一点的功能,就花了点时间改了下,_be()是小伙伴写的核心代码,没有改动,也可以单独拿出来直接用。  直接上代码

 

 1 /**
 2  * PHP数据传输接收类
 3  * @author 33
 4  * @modify me
 5  * 包含功能:1.获取传输数据,2.过滤数据不安全内容,3.验证数据指定类型
 6  * 使用示例:be::get('key'); be::post('key'); 或 be::get('key','number'); be::post('key',2);
 7  */
 8 class be {
 9     private static  $method = 'get';  //传输方式
10     private static  $param = '';  //传输参数
11     private static  $value = '';  //传输内容
12     private static  $typeof = false;  //检测内容类型
13     
14     public static function get($param, $typeof = false) {
15         self::$typeof = $typeof;
16         return self::_be('get',$param);
17     }
18     public static function post($param, $typeof = false) {
19         self::$typeof = $typeof;
20         return self::_be('post',$param);
21     }
22     private  static function _be($method,$param) {
23         ini_set("magic_quotes_runtime", 0);
24         $magicq= get_magic_quotes_gpc();
25         switch ($method) {
26             case 'post':
27                         $res=isset($_POST[$param]) ? $magicq?$_POST[$param]:addslashes($_POST[$param]) : '';
28             break;
29             case 'get':
30                         $res=isset($_GET[$param]) ? $magicq?$_GET[$param]:addslashes($_GET[$param]) : '';
31             break;
32             case 'arr':
33                         $arr =isset($_POST[$param]) ? $_POST[$param] : '';
34             if($arr=="") {
35                 $value="0";
36             } else {
37                 for ($i=0;$i<count($arr);$i++) {
38                     $res=implode(',',$arr);
39                 }
40             }
41             break;
42             default:
43                         $res=isset($_REQUEST[$param]) ? $magicq?$_REQUEST[$param]:addslashes($_REQUEST[$param]) : '';
44             break;
45         }
46         if(self::$typeof == false) {
47             return trim($res) == false ? false : $res;
48         } else {
49             return trim($res) == false ? false : self::typeof($res,self::$typeof);
50         }
51     }
52     private static function typeof($value,$typeof) {
53         $is = false;
54         if($typeof == "number" || $typeof == 1){if(is_numeric($value)){$is = true;}} //纯数字类型
55         if($typeof == "notcn" || $typeof == 2){if(preg_match('/[\x7f-\xff]/', $value)){$is = true;}} //不允许包含中文
56         if($typeof == "allcn" || $typeof == 3){if(preg_match('/^[\x7f-\xff]+$/', $value)){$is = true;}} //纯中文类型
57         return $is ? $value : $is;
58     }
59 }

 

使用例子:

比如需要获取一个username的数据 :

1 $user = be::get('username'); //获取GET数据
2 $user = be::post('username');  //获取POST数据

 

需要同时验证数据类型的话:参数后面加验证条件 就可以

1 $user = be::get('username','notcn'); //不允许包含中文
2 //或
3 $user = be::get('username',2); //不允许包含中文

 

 

简单的获取GET/POST数据类例子,仅供参考 使用,可二次开发

 

$flag 上一页 下一页