摘要:漢子漢字字母數字下劃線正則表達式漢字字母數字下劃線正則表達式您輸入的含有違法字符您輸入的完全合法通過哈哈過濾過濾字符串的長度被限制的字符串限制的字節數空超出限制值原字符串對字符串進行過濾處理被過濾的字符串過濾數
//$str = "漢hah子abc---ABC123_-"; // ////if(!preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str)) //GB2312漢字字母數字下劃線正則表達式 //if(!preg_match("#^[x{4e00}-x{9fa5}A-Za-z0-9_-]+$#u",$str)) //UTF-8漢字字母數字下劃線正則表達式 //{ // echo "您輸入的[".$str."]含有違法字符"; //}else{ // echo "您輸入的[".$str."]完全合法,通過!"; //} // //exit; //$email="afs###%-##@s.com"; //$result=filter_var($email,FILTER_VALIDATE_EMAIL); // //$str = "abcDFSDF哈哈1323@#%#$%#%$^&&*^&*"; //$sss = filter_var($str, FILTER_SANITIZE_STRIPPED); // //var_dump($sss); //exit; /** * @brief Filter 過濾 */ class Filter { /** * @brief 過濾字符串的長度 * @param string $str 被限制的字符串 * @param int $length 限制的字節數 * @return string 空:超出限制值; $str:原字符串; */ public static function limitLen($str,$length) { if($length !== false) { $count = IString::getStrLen($str); if($count > $length) { return ""; } else { return $str; } } return $str; } /** * @brief 對字符串進行過濾處理 * @param string $str 被過濾的字符串 * @param string $type 過濾數據類型 值: int, float, string, text, bool, url * @param int $limitLen 被輸入的最大字符個數 , 默認不限制; * @return string 被過濾后的字符串 * @note 默認執行的是string類型的過濾 */ public static function act($str,$type = "string",$limitLen = false) { if(is_array($str)) { $resultStr = array(); foreach($str as $key => $val) { $key = self::act($key, $type, $limitLen); $val = self::act($val, $type, $limitLen); $resultStr[$key] = $val; } return $resultStr; } else { switch($type) { case "int": return intval($str); break; case "float": return floatval($str); break; case "text": return self::text($str,$limitLen); break; case "bool": return (bool)$str; break; case "url": return self::clearUrl($str); break; case "filename": return self::fileName($str); break; // 嚴格過濾字符串 case "strict": return self::strict($str); // 檢測郵箱地址 case "email": return self::email(); // 檢測http網址 case "http": return self::http(); default: return self::string($str,$limitLen); break; } } } /** * @brief 對字符串進行嚴格的過濾處理 * @param string $str 被過濾的字符串 * @param int $limitLen 被輸入的最大長度 * @return string 被過濾后的字符串 * @note 過濾所有html標簽和php標簽以及部分特殊符號 */ public static function string($str,$limitLen = false) { $str = trim($str); $str = self::limitLen($str,$limitLen); $str = htmlspecialchars($str,ENT_NOQUOTES); return self::addSlash($str); } /** * @brief 對字符串進行普通的過濾處理 * @param string $str 被過濾的字符串 * @param int $limitLen 限定字符串的字節數 * @return string 被過濾后的字符串 * @note 僅對于部分如: