当前位置:首页 > PHP教程 > php应用 > 列表

PHP利用百度ai实现文本和图片审核

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-22 11:24:01 浏览: 评论:0 

这篇文章主要介绍了PHP利用百度ai实现文本和图片审核,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

百度ai PHP图片审核

之前做平台内容发布审核都是自己构建一套违禁词库,在代码中利用词库判断用户发布的内容,现在可以使用百度ai api完成这个功能,接下来就简单说下怎么做吧:

首先打开百度ai 开发平台 注册一个账号:

百度ai PHP图片审核

注册账号,进入控制台

百度ai PHP图片审核

创建自己的应用,获取apikey 和秘钥

百度ai PHP图片审核

进入文档页 文本审核:

百度ai PHP图片审核

图像审核:

百度ai PHP图片审核

文档很详细,实现用户发布内容审核 图片审核还是很方便简单的,我没有使用官方的sdk,简单的整合了一下作为练手,以下是我简单的代码demo:

  1. class Sentive 
  2. { 
  3.   protected $accessTokenUrl = 'https://aip.baidubce.com/oauth/2.0/token';//获取token url 
  4.   protected $textUrl = 'https://aip.baidubce.com/rest/2.0/antispam/v2/spam';//文本审核url 
  5.   protected $imgUrl = 'https://aip.baidubce.com/api/v1/solution/direct/img_censor';//图片审核url 
  6.   protected $avatarUrl = 'https://aip.baidubce.com/rest/2.0/solution/v1/face_audit';//头像审核url 
  7.  
  8.   protected $grant_type; 
  9.  
  10.   protected $client_id; 
  11.  
  12.   protected $client_secret; 
  13.  
  14.   function __construct() 
  15.   { 
  16.     $this->grant_type = 'client_credentials'; 
  17.     $this->client_id = 'xxx';//API Key 
  18.     $this->client_secret = 'xxx';//Secret Key 
  19.   } 
  20.  
  21.   static function request($url = '', $param = '') 
  22.   { 
  23.     if (emptyempty($url) || emptyempty($param)) { 
  24.       return false; 
  25.     } 
  26.  
  27.     $postUrl = $url; 
  28.     $curlPost = $param; 
  29.     $curl = curl_init();//初始化curl 
  30.     curl_setopt($curl, CURLOPT_URL, $postUrl);//抓取指定网页 
  31.     curl_setopt($curl, CURLOPT_HEADER, 0);//设置header 
  32.     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上 
  33.     curl_setopt($curl, CURLOPT_POST, 1);//post提交方式 
  34.     curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost); 
  35.     $data = curl_exec($curl);//运行curl 
  36.     curl_close($curl); 
  37.  
  38.  
  39.     return $data; 
  40.   } 
  41.  
  42.   static function request_post($url = '', $param = array(), $type) 
  43.   { 
  44.     if (emptyempty($url) || emptyempty($param)) { 
  45.       return false; 
  46.     } 
  47.  
  48.     $postUrl = $url; 
  49.     $curlPost = $param; 
  50.     $curl = curl_init(); 
  51.     curl_setopt($curl, CURLOPT_URL, $postUrl); 
  52.     curl_setopt($curl, CURLOPT_HEADER, 0); 
  53.     // 要求结果为字符串 
  54.     curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
  55.     // post方式 
  56.     curl_setopt($curl, CURLOPT_POST, 1); 
  57.     curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
  58.     curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost); 
  59.     if ($type == "text") { 
  60.       curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded')); 
  61.     } else { 
  62.       curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json;charset=utf-8')); 
  63.     } 
  64.     curl_setopt($curl, CURLINFO_HEADER_OUT, true); 
  65.     $data = curl_exec($curl); 
  66.     $code = curl_getinfo($curl, CURLINFO_HTTP_CODE); 
  67.  
  68.     if ($code === 0) { 
  69.       throw new \Exception(curl_error($curl)); 
  70.     } 
  71.     curl_close($curl); 
  72.     return $data; 
  73.   } 
  74.  
  75.   //获取token 
  76.   public function getToken() 
  77.   { 
  78.     new Redis(); 
  79.     $post_data['grant_type'] = $this->grant_type; 
  80.     $post_data['client_id'] = $this->client_id; 
  81.     $post_data['client_secret'] = $this->client_secret; 
  82.     $o = ""; 
  83.     foreach ($post_data as $k => $v) { 
  84.       $o .= "$k=" . urlencode($v) . "&"; 
  85.     } 
  86.     $post_data = substr($o, 0, -1); 
  87.     $res = self::request($this->accessTokenUrl, $post_data); 
  88.     $redis->setkey("filterToken", json_decode($res, true)['access_token']); 
  89.     return json_decode($res, true)['access_token']; 
  90.   } 
  91.  
  92.   //文本审核 
  93.   public function textVerify($data) 
  94.   { 
  95.     new Redis(); 
  96.     $token = $redis->get("filterToken"); 
  97.     if (emptyempty($token)) { 
  98.       $token = $this->getToken(); 
  99.     } 
  100.     $curl = $this->textUrl . "?access_token=" . $token; 
  101.     $result = self::request_post($curl, $data, "text"); 
  102.     return json_decode($result, true); 
  103.   } 
  104.  
  105.   //图片审核 
  106.   public function imgVerify($img) 
  107.   { 
  108.     $redis = new Redis(); 
  109.     $token = $redis->get("filterToken"); 
  110.     if (emptyempty($token)) { 
  111.       $token = $this->getToken(); 
  112.     } 
  113.     $curl = $this->imgUrl . "?access_token=" . $token; 
  114.     $bodys = array( 
  115.       'image' => $img, 
  116.       'scenes' => array("ocr", 
  117.         "face", "public", "politician", "antiporn", "terror", "webimage", "disgust", 
  118.         'watermark') 
  119.     ); 
  120.     $bodys = json_encode($bodys); 
  121.     $result = self::request_post($curl, $bodys, "img"); 
  122.     return json_decode($result, true); 
  123.   }
  124.  
  125.   //头像审核 
  126.   public function avatarVerify($img) 
  127.   { 
  128.     $redis = new Redis(); 
  129.     $token = $redis->get("filterToken"); 
  130.     if (emptyempty($token)) { 
  131.       $token = $this->getToken(); 
  132.     } 
  133.     $curl = $this->avatarUrl . "?access_token=" . $token; 
  134.     $bodys = array( 
  135.       "configId" => "1", 
  136.       "images" => $img 
  137.     ); 
  138.     $result = self::request_post($curl, $bodys, "text"); 
  139.     return json_decode($result, true); 
  140.   } 
  141. }

Tags: 百度ai PHP图片审核

分享到: