国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

php 常用過濾類

zhouzhou / 1182人閱讀

摘要:漢子漢字字母數字下劃線正則表達式漢字字母數字下劃線正則表達式您輸入的含有違法字符您輸入的完全合法通過哈哈過濾過濾字符串的長度被限制的字符串限制的字節數空超出限制值原字符串對字符串進行過濾處理被過濾的字符串過濾數

//$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 僅對于部分如:getRuntimePath()."htmlpurifier/";

        if(!file_exists($cache_dir))
        {
            IFile::mkdir($cache_dir);
        }
        $config = HTMLPurifier_Config::createDefault();

        //配置 允許flash
        $config->set("HTML.SafeEmbed",true);
        $config->set("HTML.SafeObject",true);
        $config->set("Output.FlashCompat",true);

        //配置 緩存目錄
        $config->set("Cache.SerializerPath",$cache_dir); //設置cache目錄

        //允許的target屬性
        $def = $config->getHTMLDefinition(true);
        $def->addAttribute("a", "target", "Enum#_blank,_self,_target,_top");

        //過略掉所有                
閱讀需要支付1元查看
<