zoukankan      html  css  js  c++  java
  • ThinkPHP5 如何介入阿里云反文本垃圾敏感词过滤【附源码】

    很多时候我们给与客户端在发布内容的时候,就很担心被客户输入恶意敏感词等信息,如若不慎还可能网站被封等;为了减少后台人工审核的成本,我们接入阿里云反文本垃圾。
    第一步:在阿里云申请accessKeyId和accessKeySecret
    第二步:下载阿里云的检测依赖
    阿里云Sdk下载地址:
     
    <?php
    
    
    namespace appapicontroller;
    use thinkController;
    use thinkLoader;
    
    class Textcheck extends Controller
    {
        public function text(){
            Loader::import('aliyunSdk/green-php-sdk-sample/TextScanSample',EXTEND_PATH);
            $sems = new TextScanSample();
            $content = $this->request->param('words');
            if(!$content){
                return json(['errid' => '0','message'=>'检测字符为空']);
            }
            $res = $sems->textScan($content);
            if($res['suggetion'] == 'pass'){
                return json(['errid' => '0','message'=>'阿里云文本安全审核通过']);
            }else{
                return json(['errid' => '1','message'=>'不通过,原因'.$res['scene']]);
            }
        }
    
    }

    类库文件

    <?php
    /**
     * Created by PhpStorm.
     */
    
    include_once 'aliyuncs/aliyun-php-sdk-core/Config.php';
    use GreenRequestV20180509 as Green;
    class TextScanSample {
        public function textScan($content){
            date_default_timezone_set("PRC");
            $config = config('ALIYUN_CONFIG');
            $accessKeyId = $config['ackey'];
            $accessKeySecret = $config['ack_secret'];
            $iClientProfile = DefaultProfile::getProfile("cn-shanghai", $accessKeyId, $accessKeySecret);
            DefaultProfile::addEndpoint("cn-shanghai", "cn-shanghai", "Green", "green.cn-shanghai.aliyuncs.com");
            $client = new DefaultAcsClient($iClientProfile);
            $request = new GreenTextScanRequest();
            $request->setMethod("POST");
            $request->setAcceptFormat("JSON");
            $task1 = array('dataId' =>  uniqid(),
                'content' => $content
            );
            $request->setContent(json_encode(array("tasks" => array($task1),
                "scenes" => array("antispam"))));
            try {
                $response = $client->getAcsResponse($request);
                if(200 == $response->code){
                    $taskResults = $response->data;
                    foreach ($taskResults as $taskResult) {
                        if(200 == $taskResult->code){
                            $sceneResults = $taskResult->results;
                            foreach ($sceneResults as $sceneResult) {
                                $scene = $sceneResult->scene;
                                $suggestion = $sceneResult->suggestion;
                                //根据scene和suggetion做相关的处理
                                //do something
                                $res['scene'] = $scene;
                                $res['suggetion'] = $suggestion;
                                return $res;
                            }
                        }else{
                            $scene= "task process fail:" + $response->code;
                            $res['scene'] = $scene;
                            $res['suggetion'] = 'block';
                            return $res;
                        }
                    }
                }else{
                    $scene= "detect not success. code:" + $response->code;
                    $res['scene'] = $scene;
                    $res['suggetion'] = 'block';
                    return $res;
                }
            } catch (Exception $e) {
                $res['scene'] = 'ok';
                $res['suggetion'] = $e;
                return $res;
            }
        }
    
    }
    

      

  • 相关阅读:
    springmvc(架构、组件、视图解析器的配置)
    springmvc(mvc、springmvc、springmvc入门程序)
    jvm类文件结构解析(访问标志、异常)
    软件工程(项目前期)
    jvm:java类文件结构(字节码文件的解析)
    Mybatis动态sql(if、where、sql、foreach、choose)
    ARM指令系统(CISC与RISC、新建工程)
    pyppeteer之流程解析
    Puppeteer简介及安装
    selenium之前进后退
  • 原文地址:https://www.cnblogs.com/honely/p/14016537.html
Copyright © 2011-2022 走看看