imgurl/api/identify.php

95 lines
2.3 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
/*
@name:万象优图API处理接口
@author:xiaoz.me
*/
error_reporting(E_ALL^E_NOTICE^E_WARNING^E_DEPRECATED);
//载入配置
include_once('../config.php');
//载入万象优图SDK
require_once '../sdk/wxyt/index.php';
use QcloudImage\CIClient;
$client = new CIClient($identify['APP_ID'], $identify['SECRET_ID'], $identify['SECRET_KEY'], $identify['BUCKET']);
$client->setTimeout(60);
//获取图片地址
$url = $_GET['url'];
//获取上级目录地址
//对URL进行替换
$url = str_replace($config['domain'],'',$url);
$imgdir = explode('/',$url);//对目录进行分割
//如果链接是管理员目录则不鉴黄
if($imgdir[0] == $config['admindir']) {
$re_data = array(
"code" => 0,
"result" => 0,
"confidence"=> 0
);
echo $re_data = json_encode($re_data);
exit;
}
//如果不是游客目录
if($config['userdir'] != $imgdir[0]) {
//echo $imgdir[0];
echo '非法请求';
exit;
}
//重组完整图片
$imgurl = $config['domain'].$url;
$imginfo = ($client->pornDetect(array('urls'=>array($imgurl))));
$imginfo = json_decode($imginfo);
//获取状态码,0为成功
//$code = $imginfo->http_code;
//转换为数组
$imginfo = object2array($imginfo);
//状态码0为成功
$code = $imginfo['result_list']['0']->code;
$imginfo = object2array($imginfo['result_list']['0']->data);
//识别结果,0 正常1 黄图2 疑似图片
$result = $imginfo['result'];
//识别评分,分数越高,越可能是黄图
$confidence = $imginfo['confidence'];
//重新返回json数据
$re_data = array(
"code" => $code,
"result" => $result,
"confidence"=> $confidence
);
//严格模式,如果是色情图片或疑似色情图片均放到回收站
if(($re_data['result'] == 1) || ($re_data['result'] == 2)) {
//获取图片地址
$url = dirname(dirname(__FILE__)).'/'.$url;
//回收站地址
$recycle = dirname(dirname(__FILE__))."/recycle/".end($imgdir);
//移动到回收站
if(copy($url,$recycle)){
unlink($url); //删除图片
}
}
echo $re_data = json_encode($re_data);
exit;
?>
<?php
//对象转数组
function object2array($object) {
if (is_object($object)) {
foreach ($object as $key => $value) {
$array[$key] = $value;
}
}
else {
$array = $object;
}
return $array;
}
?>