很多时候我们给与客户端在发布内容的时候,就很担心被客户输入恶意敏感词等信息,如若不慎还可能网站被封等;为了减少后台人工审核的成本,我们接入阿里云反文本垃圾。

第一步:在阿里云申请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;
}
}
}