首页 > 开发 > PHP > 正文

php输入数据统一类实例

2024-05-04 23:31:32
字体:
来源:转载
供稿:网友

这篇文章主要介绍了php输入数据统一类,实例分析了针对输入数据的各种转换技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了php输入数据统一类。分享给大家供大家参考。具体如下:

 

 
  1. <?php 
  2. class cls_request{ 
  3. private $getdata;//存储get的数据 
  4. private $postdata;//存储post的数据 
  5. private $requestdata;//存储request的数据 
  6. private $filedata;//存储file的数据 
  7. private $cookiedata;//存储cooki 
  8. static $_instance;//本类的实例 
  9.  
  10. private function __construct(){ 
  11. $this->getdata = self::format_data($_GET); 
  12. $this->postdata = self::format_data($_POST); 
  13. $this->requestdata = array_merge($this->getdata,$this->postdata); 
  14. $this->cookiedata = self::format_data($_COOKIE); 
  15. $this->filedata = self::format_data($_FILES); 
  16. //类的初始化,返回cls_request对象 
  17. public static function get_instance(){ 
  18. if(!(self::$_instance instanceof self)){ 
  19. self::$_instance = new self(); 
  20. return self::$_instance
  21. //获取GET传递过来的数值变量 
  22. public function get_num($key){ 
  23. if(!isset($this->getdata[$key])){ 
  24. return false; 
  25. return $this->to_num($this->getdata[$key]); 
  26. //获取POST传递过来的数据变量 
  27. public function post_num($key){ 
  28. if(!isset($this->postdata[$key])){ 
  29. return false; 
  30. return $this->to_num($this->postdata[$key]); 
  31. //获取Request传递过来的数值变量 
  32. public function request_num($key){ 
  33. if(!isset($this->requestdata[$key])){ 
  34. return false; 
  35. return $this->to_num($this->requestdata[$key]); 
  36. //获取Cookie传递过来的数值变量 
  37. public function cookie_num($key){ 
  38. if(!isset($this->cookiedata[$key])){ 
  39. return false; 
  40. return $this->to_num($this->cookiedata[$key]); 
  41. //获取File传递过来的数值变量 
  42. public function filedata($key){ 
  43. return $this->filedata[$key];//返回数组 
  44. //获取GET传递过来的字符串变量 
  45. public function get_string($key,$isfilter=true){ 
  46. if(!isset($this->getdata[$key])){ 
  47. return false; 
  48. if($isfilter){ 
  49. return $this->filter_string($this->getdata[$key]); 
  50. }else
  51. return $this->getdata[$key]; 
  52. //获取POST传递过来的字符串变量 
  53. public function post_string($key,$isfilter=true){ 
  54. if(!isset($this->postdata[$key])){ 
  55. return false; 
  56. if($isfilter){ 
  57. return $this->filter_string($this->postdata[$key]); 
  58. }else
  59. return $this->postdata[$key]; 
  60. //获取Request传递过来的字符串变量 
  61. public function request_string($key,$isfilter=true){ 
  62. if(!isset($this->requestdata[$key])){ 
  63. return false; 
  64. if($isfilter){ 
  65. return $this->filter_string($this->requestdata[$key]); 
  66. }else
  67. return $this->requestdata[$key]; 
  68. //获取Cookie传递过来的字符串变量 
  69. public function cookie_string($key,$isfilter=true){ 
  70. if(!isset($this->cookiedata[$key])){ 
  71. return false; 
  72. if($isfilter){ 
  73. return $this->filter_string($this->cookiedata[$key]); 
  74. }else
  75. return $this->cookiedata[$key]; 
  76. //格式化数据 
  77. private function format_data($data){ 
  78. $result = array(); 
  79. if(!is_array($data)){ 
  80. $data = array(); 
  81. /* 
  82. *list()表示用数组的数值给变量赋值。只用于数字索引的数组, 
  83. *默认从0位开始,按顺序下去 
  84. *each() 
  85. */ 
  86. while(list($key,$value) = each($data)){//不太明白 
  87. //处理checkbox之类的数据 
  88. if(is_array($value)){ 
  89. $result[$key]=$value
  90. }else{//普通数据 
  91. $result[$key] = trim($value); 
  92. //删除字符串两端空白及其它预定义字符 
  93. //转化数字 
  94. private function to_num($num){ 
  95. if(is_numeric($num)){ 
  96. return intval($num);//将变量转为整数 
  97. }else
  98. return false; 
  99. //过换过滤字符串 
  100. private function filter_string($data){ 
  101. if($data===null){ 
  102. return false; 
  103. if(is_array($data)){ 
  104. foreach($data as $k=>$v){ 
  105. $data[$k] = htmlspecialchars($v,ENT_QUOTES); 
  106. //把一些预定义字符转化为html实体 
  107. return $data
  108. }else{//普通字符串 
  109. return htmlspecialchars($data,ENT_QUOTES); 
  110. ?> 

希望本文所述对大家的php程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表