<?php
namespace Home\Controller;
vendor('tencentsdk.TCloudAutoLoader');

use Think\Controller;
use SignedCookie;
use Zhida\OAuthHelperV3;
use Think\Upload\Driver\Qiniu\QiniuStorage;

use TencentCloud\Common\Credential;
use TencentCloud\Common\Profile\ClientProfile;
use TencentCloud\Common\Profile\HttpProfile;
use TencentCloud\Common\Exception\TencentCloudSDKException;
use TencentCloud\Nlp\V20190408\NlpClient;
use TencentCloud\Nlp\V20190408\Models\SensitiveWordsRecognitionRequest;

use Think\Log;

class IndexController extends Controller
{
    private $auth_type = OAuthHelperV3::SCOPE_USERINFO;
    private $cookie_uid_key = 'skp-rotor-v1';
    private $debug = 1;
    private $today;
    use ControllerTrait;
    
    public function index()
    {
        $this->display();
    }

    public function detectSensitiveWords(){
      $text = $_GET['text'];
      $cred = new Credential("AKID9B4pPq5YBgz9Yo7qDRkspgOQK3c89PrD", "MXWK3DKNFzYgpvWwCKH4kKoma0O1Yu8A");
      $httpProfile = new HttpProfile();
      $httpProfile->setEndpoint("nlp.tencentcloudapi.com");
        
      $clientProfile = new ClientProfile();
      $clientProfile->setHttpProfile($httpProfile);
      $client = new NlpClient($cred, "ap-guangzhou", $clientProfile);
      $req = new SensitiveWordsRecognitionRequest();
      
      $params = '{"Text":"+'. $text .'+"}';
      $req->fromJsonString($params);
      $resp = $client->SensitiveWordsRecognition($req);
      $resp = $resp->toJsonString();
      echo $resp;
    }

    public function checkWord() {
      $this->ajaxReturn(array(
            'status' => 1,
            'msg' => '通过',
            'step' => 3
        ));
        return;
      $name = $_POST['name'];
      if($this->utf8_strlen($name) > 5 || empty($name))
      {
        $this->ajaxReturn(array(
          'status' => 0,
          'msg' => '非法',
          'step' => 3
        ));
        return;
      }
      $detectResult = json_decode($this->detectSensitiveWords($name),1);

      if($detectResult['SensitiveWords'] != null)
      {
        $this->ajaxReturn(array(
            'status' => -1,
            'msg' => '您提交的姓名包含敏感词',
            'step' => 3
        ));
        return;
      }
      else 
      {
        $this->ajaxReturn(array(
            'status' => 1,
            'msg' => '通过',
            'step' => 3
        ));
        return;
      }
    }

    // 计算中文字符串长度
    function utf8_strlen($string = null) {
      // 将字符串分解为单元
      preg_match_all("/./us", $string, $match);
      // 返回单元个数
      return count($match[0]);
    }
    
    public function cookie()
    {
        SignedCookie::set_cookie($this->cookie_uid_key, 'oVsrlt0zUWMLvMx2-KPGVmY2I-Xc', C('cookie_sign'), 86400 * 60);
    }
}