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

Tags: 百度ai PHP图片审核

分享到: