欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php过滤函数

程序员文章站 2024-01-25 15:30:04
...
php 利用filter 扩展编写的参数处理类。
http://www.blags.org/php-security-filter-function/
exp:
首先引入文件
include 'filter.php'
$email = CFilter::Email($_POST['email']);
验证成功返回字符串,反之返回false。
  1. /**
  2. * @参数验证函数
  3. * @method:
  4. * @license http://www.blags.org/
  5. * @created:2011年07月02日 11时00分
  6. * @copyright 1997-2011 The Martin Group
  7. * @author Martin
  8. * */
  9. abstract class CFilter
  10. {
  11. /**
  12. * 类型
  13. * @var array
  14. */
  15. public static $varType = array(
  16. 'GET' => INPUT_GET,
  17. 'POST' => INPUT_POST,
  18. 'COOKIE'=> INPUT_COOKIE,
  19. 'SERVER'=> INPUT_SERVER,
  20. 'ENV' => INPUT_ENV
  21. );
  22. public static $filterType = array(
  23. 'STRING' => FILTER_SANITIZE_STRING,
  24. 'INT' => FILTER_VALIDATE_INT,
  25. 'BOOLEAN' => FILTER_VALIDATE_BOOLEAN,
  26. 'FLOAT' => FILTER_VALIDATE_FLOAT,
  27. 'REGEXP' => FILTER_VALIDATE_REGEXP,
  28. 'URL' => FILTER_VALIDATE_URL,
  29. 'EMAIL' => FILTER_VALIDATE_EMAIL,
  30. 'IP' => FILTER_VALIDATE_IP,
  31. );
  32. /**
  33. * 支持过滤列表
  34. */
  35. private static function lists()
  36. {
  37. return filter_list();
  38. }
  39. /**
  40. * 验证类型
  41. * @param string $type
  42. */
  43. public static function filterType($type)
  44. {
  45. $filter_list = self::lists();
  46. return array_search($type,$filter_list) !== false ? true : false;
  47. }
  48. /**
  49. *
  50. * @param $setVarType
  51. */
  52. private static function getVarType($setVarType)
  53. {
  54. $setVarType = strtoupper($setVarType);
  55. return isset(self::$varType[$setVarType]) ? self::$varType[$setVarType] : null;
  56. }
  57. /**
  58. *
  59. * @param string $setFilterType
  60. */
  61. private static function getFilterType($setFilterType)
  62. {
  63. $setFilterType = strtoupper($setFilterType);
  64. return isset(self::$filterType[$setFilterType]) ? self::$filterType[$setFilterType] : null;
  65. }
  66. /**
  67. * 检测参数是否存在
  68. * @param string $setVarType
  69. * @param string $varName
  70. */
  71. public static function VarExists($setVarType,$varName)
  72. {
  73. $FilterVarType = self::getVarType($setVarType);
  74. if (is_null($FilterVarType))
  75. return false;
  76. return filter_has_var(self::$varType[$FilterVarType], $varName);
  77. }
  78. /**
  79. *
  80. * @param string $setVarType
  81. * @param string $varName
  82. * @param string $filterType
  83. */
  84. public static function FilterInput($setVarType, $varName, $filterType = 'INT')
  85. {
  86. $FilterVarType = self::getVarType($setVarType);
  87. $filterType = self::getFilterType($filterType);
  88. if (is_null($FilterVarType) || is_null($filterType))
  89. return false;
  90. return filter_input($FilterVarType, $varName, $filterType);
  91. }
  92. /**
  93. * 验证变量
  94. * @param string $var
  95. * @param string $filterType
  96. */
  97. public static function FilterVar($var,$filterType)
  98. {
  99. $filterType = self::getFilterType($filterType);
  100. return filter_var($var, $filterType);
  101. }
  102. /**
  103. * 字符串
  104. * @param string $var
  105. */
  106. public static function String($var)
  107. {
  108. return self::FilterVar($var,'STRING');
  109. }
  110. public static function Int($var)
  111. {
  112. return self::FilterVar($var,'INT');
  113. }
  114. public static function Boolean($var)
  115. {
  116. return self::FilterVar($var,'INT');
  117. }
  118. public static function Float($var)
  119. {
  120. return self::FilterVar($var,'FLOAT');
  121. }
  122. /**
  123. *
  124. * @param string $var
  125. * @param array $option array("options"=>array("regexp"=>"/^M(.*)/"))
  126. */
  127. public static function Regexp($var,$option)
  128. {
  129. $filterType = self::getFilterType($filterType);
  130. return filter_var($var, $filterType, $option);
  131. }
  132. public static function Url($var)
  133. {
  134. return self::FilterVar($var,'URL');
  135. }
  136. public static function Email($var)
  137. {
  138. return self::FilterVar($var,'EMAIL');
  139. }
  140. public static function Ip($var)
  141. {
  142. return self::FilterVar($var,'IP');
  143. }
  144. }
复制代码
相关标签: php过滤函数