首頁 > 後端開發 > php教程 > php filter 安全過濾函數

php filter 安全過濾函數

巴扎黑
發布: 2016-11-29 10:05:10
原創
920 人瀏覽過

php 利用filter 擴充編寫的參數處理靜態類別,歡迎使用。
希望大家看得開心,用得放心。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

<?php

/**

 * @参数验证函数

 * @method:

 * @license http://www.blags.org/

 * @created:2011年07月02日 11时00分

 * @copyright 1997-2011 The Martin Group

 * @author Martin <martin@blags.org>

 * */

abstract class CFilter

{

/**

* 类型

* @var array

*/

public static $varType = array(

&#39;GET&#39;=> INPUT_GET,

&#39;POST&#39;=> INPUT_POST,

&#39;COOKIE&#39;=> INPUT_COOKIE,

&#39;SERVER&#39;=> INPUT_SERVER,

&#39;ENV&#39;=> INPUT_ENV

);

public static $filterType = array(

&#39;STRING&#39;=>FILTER_SANITIZE_STRING,

&#39;INT&#39;=>FILTER_VALIDATE_INT,

&#39;BOOLEAN&#39;=>FILTER_VALIDATE_BOOLEAN,

&#39;FLOAT&#39;=>FILTER_VALIDATE_FLOAT,

&#39;REGEXP&#39;=>FILTER_VALIDATE_REGEXP,

&#39;URL&#39;=>FILTER_VALIDATE_URL,

&#39;EMAIL&#39;=>FILTER_VALIDATE_EMAIL,

&#39;IP&#39;=>FILTER_VALIDATE_IP,

);

  

/**

* 支持过滤列表

*/

private static function lists()

{

return filter_list();

}

  

/**

* 验证类型

* @param string $type

*/

public static function filterType($type)

{

$filter_list = self::lists();

return array_search($type,$filter_list) !== false ? true : false;

}

  

/**

*

* @param $setVarType

*/

private static function getVarType($setVarType)

{

$setVarType = strtoupper($setVarType);

return isset(self::$varType[$setVarType]) ? self::$varType[$setVarType] : null;

}

  

/**

*

* @param string $setFilterType

*/

private static function getFilterType($setFilterType)

{

$setFilterType = strtoupper($setFilterType);

return isset(self::$filterType[$setFilterType]) ? self::$filterType[$setFilterType] : null;

}

  

/**

* 检测参数是否存在

* @param string $setVarType

* @param string $varName

*/

public static function VarExists($setVarType,$varName)

{

$FilterVarType = self::getVarType($setVarType);

if (is_null($FilterVarType))

return false;

return filter_has_var(self::$varType[$FilterVarType], $varName);

}

  

/**

*

* @param string $setVarType

* @param string $varName

* @param string $filterType

*/

public static function FilterInput($setVarType, $varName, $filterType = &#39;INT&#39;)

{

$FilterVarType = self::getVarType($setVarType);

$filterType = self::getFilterType($filterType);

if (is_null($FilterVarType) || is_null($filterType))

return false;

return filter_input($FilterVarType, $varName, $filterType);

}

  

/**

* 验证变量

* @param string $var

* @param string $filterType

*/

public static function FilterVar($var,$filterType)

{

$filterType = self::getFilterType($filterType);

return filter_var($var, $filterType);

}

  

/**

* 字符串

* @param string $var

*/

public static function String($var)

{

return self::FilterVar($var,&#39;STRING&#39;);

}

  

public static function Int($var)

{

return self::FilterVar($var,&#39;INT&#39;);

}

  

public static function Boolean($var)

{

return self::FilterVar($var,&#39;INT&#39;);

}

  

public static function Float($var)

{

return self::FilterVar($var,&#39;FLOAT&#39;);

}

  

/**

*

* @param string $var

* @param array $option array("options"=>array("regexp"=>"/^M(.*)/"))

*/

public static function Regexp($var,$option)

{

$filterType = self::getFilterType($filterType);

return filter_var($var, $filterType, $option);

}

  

public static function Url($var)

{

return self::FilterVar($var,&#39;URL&#39;);

}

  

public static function Email($var)

{

return self::FilterVar($var,&#39;EMAIL&#39;);

}

  

public static function Ip($var)

{

return self::FilterVar($var,&#39;IP&#39;);

}

  

}

登入後複製


相關標籤:
php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
怎麼學好php
來自於 1970-01-01 08:00:00
0
0
0
PHP擴充intl
來自於 1970-01-01 08:00:00
0
0
0
php數據獲取?
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板