|
復制代碼 代碼如下:
<?php
abstract class Filter { //filter parent class
private $blackstr = array();
private $whitestr = array();
function filtit($str) {
//do something
}
}
class LoginFilter extends Filter { //for user login filte username(過濾注冊的用戶名)
function filtit($str) {
$this -> blackstr = array(
´/[/x7f-/xff]/´, //filter chinese include chinese symbol
´//W/´ //filter all english symbol
);
return preg_replace($this->blackstr, ´´, $str);
}
}
class EditorFilter extends Filter { //for article editor filter(過濾在線編輯器內容)
function filtit($str) {
$this -> blackstr = array(
´//&/´,
´//´/´,
´//"/´,
´//</´,
´//>/´,
´//////´,
´////´,
´/-/´,
´//*/´,
´/ /´
);
$this -> whitestr = array(
´&´,
´'´,
´"´,
´<´,
´>´,
´\´,
´/´,
´-´,
´*´,
´ ´
);
return preg_replace($this->blackstr, $this -> whitestr, $str);
}
}
class SQLFilter extends Filter { //for filte sql query string(過濾如查詢或其它sql語句)
function filtit($str) {
$this -> blackstr = array(
´//´/´,
´/-/´
);
return preg_replace($this->blackstr, ´´, $str);
}
}
class FileNameFilter extends Filter { //for filte a file name(過濾文件名如下載文件名)
function filtit($str) {
$this -> blackstr = array(
´/[^A-za-z0-9_/.]|////|/^|/[|/]/´
);
return preg_replace($this->blackstr, ´´, $str);
}
}
?>
使用方法如:
復制代碼 代碼如下:
$filter = new FileNameFilter(); //定義實例
$downFile = $filter->filtit($_GET[´fn´]); //調用過濾方法
php技術:php 字符過濾類,用于過濾各類用戶輸入的數據,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。