// +---------------------------------------------------------------------- // 应用公共文件 /** * 敏感词过滤 * * @param string * @return string */ function sensitive_words_filter($str) { if (!$str) return ''; $file = ROOT_PATH. PUBILC_PATH.'/static/plug/censorwords/CensorWords'; $words = file($file); foreach($words as $word) { $word = str_replace(array("\r\n","\r","\n","/","<",">","="," "), '', $word); if (!$word) continue; $ret = preg_match("/$word/", $str, $match); if ($ret) { return $match[0]; } } return ''; } /** * 上传路径转化,默认路径 UPLOAD_PATH * $type 类型 */ function makePathToUrl($path,$type = 2) { $path = DS.ltrim(rtrim($path)); switch ($type){ case 1: $path .= DS.date('Y'); break; case 2: $path .= DS.date('Y').DS.date('m'); break; case 3: $path .= DS.date('Y').DS.date('m').DS.date('d'); break; } if (is_dir(ROOT_PATH.UPLOAD_PATH.$path) == true || mkdir(ROOT_PATH.UPLOAD_PATH.$path, 0777, true) == true) { return trim(str_replace(DS, '/',UPLOAD_PATH.$path),'.'); }else return ''; } // 过滤掉emoji表情 function filterEmoji($str) { $str = preg_replace_callback( //执行一个正则表达式搜索并且使用一个回调进行替换 '/./u', function (array $match) { return strlen($match[0]) >= 4 ? '' : $match[0]; }, $str); return $str; } //可逆加密 function encrypt($data, $key) { $prep_code = serialize($data); $block = mcrypt_get_block_size('des', 'ecb'); if (($pad = $block - (strlen($prep_code) % $block)) < $block) { $prep_code .= str_repeat(chr($pad), $pad); } $encrypt = mcrypt_encrypt(MCRYPT_DES, $key, $prep_code, MCRYPT_MODE_ECB); return base64_encode($encrypt); } //可逆解密 function decrypt($str, $key) { $str = base64_decode($str); $str = mcrypt_decrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB); $block = mcrypt_get_block_size('des', 'ecb'); $pad = ord($str[($len = strlen($str)) - 1]); if ($pad && $pad < $block && preg_match('/' . chr($pad) . '{' . $pad . '}$/', $str)) { $str = substr($str, 0, strlen($str) - $pad); } return unserialize($str); } //替换一部分字符 /** * @param $string 需要替换的字符串 * @param $start 开始的保留几位 * @param $end 最后保留几位 * @return string */ function strReplace($string,$start,$end) { $strlen = mb_strlen($string, 'UTF-8');//获取字符串长度 $firstStr = mb_substr($string, 0, $start,'UTF-8');//获取第一位 $lastStr = mb_substr($string, -1, $end, 'UTF-8');//获取最后一位 return $strlen == 2 ? $firstStr . str_repeat('*', mb_strlen($string, 'utf-8') -1) : $firstStr . str_repeat("*", $strlen - 2) . $lastStr; }