Home  >  Article  >  Backend Development  >  TP5 encapsulates Alibaba Cloud sensitive word detection interface

TP5 encapsulates Alibaba Cloud sensitive word detection interface

*文
*文Original
2017-12-21 11:14:113805browse

In actual projects, it is inevitable that sensitive words need to be blocked. This article uses TP5 as an example to encapsulate a sensitive word detection interface for your reference.

Alibaba Cloud Content Detection API SDK Development Kit: https://help.aliyun.com/knowledge_detail/50180.html

<?php
namespace Potting;
include_once &#39;Aliyun/aliyun-php-sdk-core/Config.php&#39;;
use Green\Request\V20170112 as Green;
class TextScan{
	private static $accessKeyId=&#39;&#39;;
	private static $accessKeySecret=&#39;&#39;;
	static public function text($content){
		date_default_timezone_set("PRC");
		$iClientProfile = \DefaultProfile::getProfile("cn-shanghai", self::$accessKeyId, self::$accessKeySecret);
		\DefaultProfile::addEndpoint("cn-shanghai", "cn-shanghai", "Green", "green.cn-shanghai.aliyuncs.com");
		$client = new \DefaultAcsClient($iClientProfile);
		$request = new Green\TextScanRequest();
		$request->setMethod("POST");
		$request->setAcceptFormat("JSON");
		$task1 = array(&#39;dataId&#39; => uniqid(),
		&#39;content&#39; => $content
		);
		/**
		* 文本垃圾检测: antispam
		* 关键词检测: keyword
		**/
		$request->setContent(json_encode(array("tasks" => array($task1),
		"scenes" => array("antispam"))));
		try {
			$response = $client->getAcsResponse($request);
			$result=array();
			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;
							$result=$taskResult;
						}
					}else{
						print_r("task process fail:" + $response->code);
					}
				}
			}else{
				print_r("detect not success. code:" + $response->code);
			}
			$result=$result->results[0];
			$data=array();
			if($result->label == &#39;normal&#39;){
				$data[&#39;code&#39;]=true;
				$data[&#39;label&#39;]=$result->label;
			}else{
				$data[&#39;code&#39;]=false;
				$data[&#39;label&#39;]=self::getlabel($result->label);
			}
			return $data;
		} catch (Exception $e) {
			print_r($e);
		}

	}
	static private function getlabel($label){
		switch ($label){
			case  &#39;normal&#39;:
				return &#39;正常文本&#39;;
				break;
			case  &#39;spam&#39;:
				return &#39;输入的内容含垃圾信息&#39;;
				break;
			case  &#39;ad&#39;:
				return &#39;输入的内容含广告&#39;;
				break;
			case  &#39;politics&#39;:
				return &#39;输入的内容含渉政&#39;;
				break;
			case  &#39;terrorism&#39;:
				return &#39;输入的内容含暴恐&#39;;
				break;
			case  &#39;abuse&#39;:
				return &#39;输入的内容含辱骂&#39;;
				break;
			case  &#39;porn&#39;:
				return &#39;输入的内容含色情&#39;;
				break;
			case  &#39;flood&#39;:
				return &#39;输入的内容含灌水&#39;;
				break;
			case  &#39;contraband&#39;:
				return &#39;输入的内容含垃违禁&#39;;
				break;
			case  &#39;customized&#39;:
				return &#39;输入的内容包含敏感词&#39;;
				break;
			default:
				return &#39;&#39;;
				break;
		}
	}
}

Related reading:

TP5 implements an example of email sending service encapsulation and the ability to send attachments

tp5An example of how to use bootstrapvalidator to asynchronously verify an email address

Resource sharing about TP5.0 MVC introductory video

The above is the entire content of this article. If students have any questions, you can discuss it in the comment area below~

The above is the detailed content of TP5 encapsulates Alibaba Cloud sensitive word detection interface. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn