| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <?php
- // +----------------------------------------------------------------------
- // | ThinkPHP [ WE CAN DO IT JUST THINK ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
- // +----------------------------------------------------------------------
- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
- // +----------------------------------------------------------------------
- // | Author: 流年 <liu21st@gmail.com>
- // +----------------------------------------------------------------------
- // 应用公共文件
- /**
- * 敏感词过滤
- *
- * @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;
- }
|