// +---------------------------------------------------------------------- namespace mall\utils; use mall\basic\Setting; use think\facade\Config; use think\facade\Request; class Tool { public static function thumb($image="",$prefix=null,$root=false){ if(Check::url($image)) return $image; $domain = $root ? trim(Request::domain(),"/") : ""; if(empty($image) || !file_exists(self::getRootPath() . "public/" . trim($image,"/"))){ return $domain . "/static/images/default.jpg"; } $image = "/" . substr($image,stripos($image,"uploads")); return $domain . $image; } public static function removeContentAttr($content){ return preg_replace([ '/(]*?)width=.+?[\'|\"]/', '/( $item) { $num = mt_rand(1, $sum); if ($num <= $item) { $index = $key; break; } else { $sum -= $item; } } return $index; } public static function editor($content=""){ if(empty($content)){ return $content; } $runtime_path = self::getRootPath(); $path = $runtime_path . 'runtime/htmlpurifier/'; if(!file_exists($path)){ mkdir($path,0777,true); } $config = \HTMLPurifier_Config::createDefault(); $config->set('Cache.SerializerPath',$path); $config->set('HTML.SafeEmbed',true); $config->set('HTML.SafeObject',true); $config->set('HTML.SafeIframe',true); $config->set('Output.FlashCompat',true); $config->set('Attr.EnableID',true); //$config->set('HTML.AllowedElements',array('div'=>true,'table'=>true,'tr'=>true,'td'=>true,'br'=>true)); $config->set('Core.Encoding','UTF-8'); $def = $config->getHTMLDefinition(true); $def->addAttribute('a', 'target', 'Enum#_blank,_self,_target,_top'); $def->addAttribute('iframe', 'src',"URI"); $purifier = new \HTMLPurifier($config); return $purifier->purify($content); } public static function prefix(){ $config = Config::get("database"); return $config["connections"][$config["default"]]["prefix"]; } public static function moneyPrefix($price=0){ return Config::get("base.money_prefix") . $price; } public static function getRootPath(): string { $path = dirname(dirname(__DIR__)) . DIRECTORY_SEPARATOR; return $path; } public static function odd($num){ return (is_numeric($num)&($num&1)); } public static function even($num){ return (is_numeric($num)&(!($num&1))); } }