当前位置:首页 > PHP教程 > php应用 > 列表

整理了php过滤字符串几个例子

发布:smiling 来源: PHP粉丝网  添加日期:2015-04-08 16:34:23 浏览: 评论:0 

php中过滤一些特殊字符我们通常用于在安全数据提交或者敏感词的过滤上,下面整理了一些常用的例子供大家参考,有需要了可进入参考.

例子,我们利用preg_replace与str_ireplace来进行替换操作,代码如下:

  1. public static function filterStr( $value ) 
  2. if ( emptyempty$value ) ) 
  3. return ""
  4. $value = trim( $value ); 
  5. $badstr = array"x00""%00""r""&"""", "'", "<", ">", "%3C", "%3E" ); 
  6. $newstr = array"""""""&amp;""&quot;""&#39;""&lt;""&gt;""&lt;""&gt;" ); 
  7. $value = str_ireplace$badstr$newstr$value ); 
  8. $value = preg_replace( "/&amp;((#(d{3,5}|x[a-fA-F0-9]{4}));)/""&1"$value ); 
  9. return $value
  10. public static function stripArray( &$_data ) 
  11. if ( is_array$_data ) ) 
  12. foreach ( $_data as $_key => $_value ) 
  13. $_data[$_key] = trim( self::striparray( $_value ) ); 
  14. return $_data
  15. return stripslashes( trim( $_data ) ); 

另收藏代码如下:

  1. <?php 
  2. class XRequest 
  3.  
  4. public static function getPost( $name = "" ) 
  5. if ( emptyempty$name ) ) 
  6. return $_POST
  7. if ( isset( $_POST[$name] ) ) 
  8. return $_POST[$name]; 
  9. return ""
  10.  
  11. public static function getGet( $name = "" ) 
  12. if ( emptyempty$name ) ) 
  13. return $_GET
  14. if ( isset( $_GET[$name] ) ) 
  15. return $_GET[$name]; 
  16. return ""
  17.  
  18. public static function getCookie( $name = "" ) 
  19. if ( $name == "" ) 
  20. return $_COOKIE
  21. if ( isset( $_COOKIE[$name] ) ) 
  22. return $_COOKIE[$name]; 
  23. return ""
  24.  
  25. public static function getSession( $name = "" ) 
  26. if ( $name == "" ) 
  27. return $_SESSION
  28. if ( isset( $_SESSION[$name] ) ) 
  29. return $_SESSION[$name]; 
  30. return ""
  31.  
  32. public static function fetchEnv( $name = "" ) 
  33. if ( $name == "" ) 
  34. return $_ENV
  35. if ( isset( $_ENV[$name] ) ) 
  36. return $_ENV[$name]; 
  37. return ""
  38.  
  39. public static function getService( $name = "" ) 
  40. if ( $name == "" ) 
  41. return $_SERVER
  42. if ( isset( $_SERVER[$name] ) ) 
  43. return $_SERVER[$name]; 
  44. return ""
  45.  
  46. public static function getPhpSelf( ) 
  47. return strip_tags( self::getservice( "PHP_SELF" ) ); 
  48.  
  49. public static function getServiceName( ) 
  50. return self::getservice( "SERVER_NAME" ); 
  51.  
  52. public static function getRequestTime( ) 
  53. return self::getservice( "REQUEST_TIME" ); 
  54.  
  55. public static function getUserAgent( ) 
  56. return self::getservice( "HTTP_USER_AGENT" ); 
  57.  
  58. public static function getUri( ) 
  59. return self::getservice( "REQUEST_URI" ); 
  60.  
  61. public static function isPost( ) 
  62. if ( strtolower( self::getservice( "REQUEST_METHOD" ) ) == "post" ) 
  63. return TRUE; 
  64. return FALSE; 
  65.  
  66. public static function isGet( ) 
  67. if ( strtolower( self::getservice( "REQUEST_METHOD" ) ) == "get" ) 
  68. return TRUE; 
  69. return FALSE; 
  70.  
  71. public static function isAjax( ) 
  72. if ( self::getservice( "HTTP_X_REQUESTED_WITH" ) && strtolower( self::getservice( "HTTP_X_REQUESTED_WITH" ) ) == "xmlhttprequest" ) 
  73. return TRUE; 
  74. if ( self::getservice( "HTTP_REQUEST_TYPE" ) && strtolower( self::getservice( "HTTP_REQUEST_TYPE" ) ) == "ajax" ) 
  75. return TRUE; 
  76. if ( self::getpost( "oe_ajax" ) || self::getget( "oe_ajax" ) ) 
  77. return TRUE; 
  78. return FALSE; 
  79.  
  80. public static function getip( ) 
  81. static $realip = NULL; 
  82. if ( isset( $_SERVER ) ) 
  83. if ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) 
  84. $realip = $_SERVER['HTTP_X_FORWARDED_FOR']; 
  85. else if ( isset( $_SERVER['HTTP_CLIENT_IP'] ) ) 
  86. $realip = $_SERVER['HTTP_CLIENT_IP']; 
  87. else 
  88. $realip = $_SERVER['REMOTE_ADDR']; 
  89. else if ( getenv"HTTP_X_FORWARDED_FOR" ) ) 
  90. $realip = getenv"HTTP_X_FORWARDED_FOR" ); 
  91. else if ( getenv"HTTP_CLIENT_IP" ) ) 
  92. $realip = getenv"HTTP_CLIENT_IP" ); 
  93. else 
  94. $realip = getenv"REMOTE_ADDR" ); 
  95. $one = "([0-9]|[0-9]{2}|1dd|2[0-4]d|25[0-5])"
  96. if ( !@preg_match( "/".$one.".".$one.".".$one.".".$one."$/"$realip ) ) 
  97. $realip = "0.0.0.0"
  98. return $realip
  99.  
  100. protected static function uri( ) 
  101. $uri = self::geturi( ); 
  102. $file = dirname( $_SERVER['SCRIPT_NAME'] ); 
  103. $request = str_replace$file""$uri ); 
  104. $request = explode"/", trim( $request"/" ) ); 
  105. if ( isset( $request[0] ) ) 
  106. $GLOBALS['_GET']['c'] = $request[0]; 
  107. unset( $request[0] ); 
  108. if ( isset( $request[1] ) ) 
  109. $GLOBALS['_GET']['a'] = $request[1]; 
  110. unset( $request[1] ); 
  111. if ( 1 < count$request ) ) 
  112. $mark = 0; 
  113. $val = $key = array( ); 
  114. foreach ( $request as $value ) 
  115. ++$mark
  116. if ( $mark % 2 == 0 ) 
  117. $val[] = $value
  118. else 
  119. $key[] = $value
  120. if ( count$key ) !== count$val ) ) 
  121. $val[] = NULL; 
  122. $get = array_combine$key$val ); 
  123. foreach ( $get as $key => $value ) 
  124. $GLOBALS['_GET'][$key] = $value
  125. return TRUE; 
  126.  
  127. public static function getGpc( $value$isfliter = TRUE ) 
  128. if ( !is_array$value ) ) 
  129. if ( isset( $_GET[$value] ) ) 
  130. $temp = trim( $_GET[$value] ); 
  131. if ( isset( $_POST[$value] ) ) 
  132. $temp = trim( $_POST[$value] ); 
  133. $temp = $isfliter === TRUE ? XFilter::filterstr( $temp ) : $temp
  134. return trim( $temp ); 
  135. $temp = array( ); 
  136. foreach ( $value as $val ) 
  137. if ( isset( $_GET[$val] ) ) 
  138. $temp[$val] = trim( $_GET[$val] ); 
  139. if ( isset( $_POST[$val] ) ) 
  140. $temp[$val] = trim( $_POST[$val] ); 
  141. $temp[$val] = $isfliter === TRUE ? XFilter::filterstr( $temp[$val] ) : $temp[$val]; 
  142. return $temp
  143.  
  144. public static function getArgs( $value$default = NULL, $isfliter = TRUE ) 
  145. if ( !emptyempty$value ) ) 
  146. if ( isset( $_GET[$value] ) ) 
  147. $temp = trim( $_GET[$value] ); 
  148. if ( isset( $_POST[$value] ) ) 
  149. $temp = trim( $_POST[$value] ); 
  150. if ( $isfliter ) 
  151. $temp = XFilter::filterstr( $temp ); 
  152. else 
  153. $temp = XFilter::striparray( $temp ); 
  154. if ( emptyempty$temp ) && !emptyempty$default ) ) 
  155. $temp = $default
  156. return trim( $temp ); 
  157. return ""
  158.  
  159. public static function getInt( $value$default = NULL ) 
  160. if ( !emptyempty$value ) ) 
  161. if ( isset( $_GET[$value] ) ) 
  162. $temp = $_GET[$value]; 
  163. if ( isset( $_POST[$value] ) ) 
  164. $temp = $_POST[$value]; 
  165. $temp = XFilter::filterstr( $temp ); 
  166. if ( emptyempty$temp ) || FALSE === XValid::isnumber( $temp ) ) 
  167. if ( TRUE === XValid::isnumber( $default ) ) 
  168. $temp = $default
  169. else 
  170. $temp = 0; 
  171. return intval$temp ); 
  172. return 0; 
  173.  
  174. public static function getArray( $value ) 
  175. if ( !emptyempty$value ) ) 
  176. if ( isset( $_GET[$value] ) ) 
  177. $temp = $_GET[$value]; 
  178. if ( isset( $_POST[$value] ) ) 
  179. $temp = $_POST[$value]; 
  180. return $temp
  181. return ""
  182.  
  183. public static function recArgs( $value ) 
  184. if ( !emptyempty$value ) ) 
  185. if ( isset( $_GET[$value] ) ) 
  186. $temp = $_GET[$value]; 
  187. if ( isset( $_POST[$value] ) ) 
  188. $temp = $_POST[$value]; 
  189. return XFilter::filterbadchar( $temp ); 
  190. return ""
  191.  
  192. public static function getComArgs( $itemname ) 
  193. $args = ""
  194. $array = self::getarray( $itemname ); 
  195. if ( !emptyempty$array ) ) 
  196. $ii = 0; 
  197. for ( ; $ii < count$array );   ++$ii   ) 
  198. $val = XFilter::filterbadchar( $array[$ii] ); 
  199. if ( !emptyempty$val ) ) 
  200. if ( $ii == 0 ) 
  201. $args = $val
  202. else if ( $args == "" ) 
  203. $args = $val
  204. else 
  205. $args = $args.",".$val
  206. return $args
  207.  
  208. public static function getComInts( $name ) 
  209. $args = ""
  210. $array = self::getarray( $name ); 
  211. if ( !emptyempty$array ) ) 
  212. $ii = 0; 
  213. for ( ; $ii < count$array );   ++$ii   ) 
  214. $val = intval( XFilter::filterbadchar( $array[$ii] ) ); 
  215. if ( !emptyempty$val ) ) 
  216. if ( $ii == 0 ) 
  217. $args = $val
  218. else if ( $args == "" ) 
  219. $args = $val
  220. else 
  221. $args = $args.",".$val
  222. return $args
  223.  
  224.  
  225. if ( !defined( "IN_OESOFT" ) ) 
  226. exit"Access Denied" ); 
  227. ?> 
  228. <?php 
  229. class XFilter 
  230.  
  231. public static function filterBadChar( $str ) 
  232. if ( emptyempty$str ) || $str == "" ) 
  233. return
  234. $badstring = array"'"""", """"=""#""$"">""<""""/*""%""x00""%00""*" ); 
  235. $newstring = array"""""""""""""""""""""""""""" ); 
  236. $str = str_replace$badstring$newstring$str ); 
  237. return trim( $str ); 
  238.  
  239. public static function stripArray( &$_data ) 
  240. if ( is_array$_data ) ) 
  241. foreach ( $_data as $_key => $_value ) 
  242. $_data[$_key] = trim( self::striparray( $_value ) ); 
  243. return $_data
  244. return stripslashes( trim( $_data ) ); 
  245.  
  246. public static function filterSlashes( &$value ) 
  247. if ( get_magic_quotes_gpc( ) ) 
  248. return FALSE; 
  249. $value = ( array )$value
  250. foreach ( $value as $key => $val ) 
  251. if ( is_array$val ) ) 
  252. self::filterslashes( $value[$key] ); 
  253. else 
  254. $value[$key] = addslashes$val ); 
  255.  
  256. public static function filterScript( $value ) 
  257. if ( emptyempty$value ) ) 
  258. return ""
  259. $value = preg_replace( "/(javascript:)?on(click|load|key|mouse|error|abort|move|unload|change|dblclick|move|reset|resize|submit)/i""&111n2"$value ); 
  260. $value = preg_replace( "/<script(.*?)>(.*?)</script>/si"""$value ); 
  261. $value = preg_replace( "/<iframe(.*?)>(.*?)</iframe>/si"""$value ); 
  262. $value = preg_replace( "/<object.+</object>/iesU"""$value ); 
  263. return $value
  264.  
  265. public static function filterHtml( $value ) 
  266. if ( emptyempty$value ) ) 
  267. return ""
  268. if ( function_exists( "htmlspecialchars" ) ) 
  269. return htmlspecialchars( $value ); 
  270. return str_replacearray"&"""", "'", "<", ">" ), array( "&amp;", "&quot;", "&#039;", "&lt;", "&gt;" ), $value ); 
  271.  
  272. public static function filterSql( $value ) 
  273. if ( emptyempty$value ) ) 
  274. return ""
  275. $sql = array"select""insert""update""delete""'""/*""../""./""union""into""load_file""outfile" ); 
  276. $sql_re = array"""""""""""""""""""""""" ); 
  277. return str_ireplace$sql$sql_re$value ); 
  278.  
  279. public static function filterStr( $value ) 
  280. if ( emptyempty$value ) ) 
  281. return ""
  282. $value = trim( $value ); 
  283. $badstr = array"x00""%00""r""&"""", "'", "<", ">", "%3C", "%3E" ); 
  284. $newstr = array"""""""&amp;""&quot;""&#39;""&lt;""&gt;""&lt;""&gt;" ); 
  285. $value = str_ireplace$badstr$newstr$value ); 
  286. $value = preg_replace( "/&amp;((#(d{3,5}|x[a-fA-F0-9]{4}));)/""&1"$value ); 
  287. return $value
  288.  
  289. public static function filterUrl( ) 
  290. if ( preg_replace( "/https?://([^:/]+).*/i""1"$_SERVER['HTTP_REFERER'] ) !== preg_replace( "/([^:]+).*/""1"$_SERVER['HTTP_HOST'] ) ) 
  291. //开源软件:phpfensi.com 
  292. return FALSE; 
  293. return TRUE; 
  294.  
  295. public static function filterForbidChar( $content ) 
  296. $new_content = $content
  297. $forbidargs = X::$cfg['forbidargs']; 
  298. if ( !emptyempty$forbidargs ) ) 
  299. $array = explode","$forbidargs ); 
  300. $i = 0; 
  301. for ( ; $i < sizeof( $array );   ++$i    ) 
  302. $new_content = str_ireplace$array[$i], ""$content ); 
  303. return $new_content
  304.  
  305. public static function checkExistsForbidChar( $content ) 
  306. $flag = FALSE; 
  307. $forbidargs = X::$cfg['forbidargs']; 
  308. if ( !emptyempty$forbidargs ) ) 
  309. $array = explode","$forbidargs ); 
  310. $i = 0; 
  311. for ( ; $i < sizeof( $array );   ++$i    ) 
  312. if ( FALSE === strposstrtolower$content ), strtolower$array[$i] ) ) ) 
  313. continue
  314. $flag = TRUE; 
  315. break
  316. return $flag
  317.  
  318. public static function checkExistsForbidUserName( $username ) 
  319. $flag = FALSE; 
  320. $forbidargs = X::$cfg['lockusers']; 
  321. if ( !emptyempty$forbidargs ) ) 
  322. $array = explode","$forbidargs ); 
  323. $i = 0; 
  324. for ( ; $i < sizeof( $array );   ++$i    ) 
  325. if ( FALSE === strposstrtolower$username ), strtolower$array[$i] ) ) ) 
  326. continue
  327. $flag = TRUE; 
  328. break
  329. return $flag
  330.  
  331.  
  332. if ( !defined( "IN_OESOFT" ) ) 
  333. exit"Access Denied" ); 
  334. ?>

Tags: php过滤字符串 php危险字符

分享到: