mirror of
https://github.com/crmeb/CRMEB.git
synced 2025-12-12 03:01:18 +00:00
109 lines
3.4 KiB
PHP
109 lines
3.4 KiB
PHP
<?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;
|
|
|
|
} |