| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- <?php namespace App\Servers\Safe;
- /**
- * 文本内容安全
- *
- */
- class TextModeration{
- /**
- * 获取配置
- *
- * @param Array $config 配置项
- *
- */
- public function getConfig(){
- // 链式操作
- return $this->config;
- }
- /**
- * 本地检测
- *
- * @param String $content 检测内容
- *
- */
- public function localCheck($content){
- // 结果
- $result = ['suggestion'=>'Pass','keywords'=>[]];
- // 组合路径
- $file = resource_path('js').'/sensitive_words.json';
- // 返回结果
- if( !file_exists($file) ) return $result;
- // 如果存在文件
- $file = file_get_contents($file);
- // 解析数据库
- $stop = json_decode($file,true);
- // 返回结果
- if( !$stop ) return $result;
- // 如果是字符串
- if( !is_array($stop) ) return $result;
- // 如果没有文件
- foreach ($stop as $value) {
- // 没有字符
- if( empty($value['words']) ) continue;
- // 返回结果
- if( stripos('$'.$content,$value['words']) > 0 ) {
- $result['suggestion'] = 'Local';
- $result['keywords'][] = $value['words'];
- }
- }
- // 返回结果
- return $result;
- }
- /**
- * @param String $content 检测内容
- *
- *
- */
- public function textModeration($content){
- try {
- // 替换
- $content = str_ireplace([' ',';',':','-','=','+','*','^','%','#','@','!','~','`','(',')','?','/','&',';',',','"',"'",'<','>','.','[',']','|',"\\",'{','}'],'',$content);
- // 如果是空字符串
- if( !$content ) return ['suggestion'=>'Empty','keywords'=>[]];
- // 先检测本地的
- $result = $this->localCheck($content);
- // 错误
- if ( $result['suggestion'] != 'Pass' ) return $result;
- // 返回结果
- return $result;
- }catch(TencentCloudSDKException $e) {
- // 如果错误
- return ['error'=>$e->getMessage()];
- }
- }
- }
|