<?php
/**
 * Created by PhpStorm.
 * User: qiuzijian
 * Date: 2021-04-14
 * Time: 17:34
 */

/**
 * 密码验证
 */
if (!function_exists('validPass')) {
    function validPass($candidate)
    {
        $r1 = '/[A-Z]/';  //  大写字母
        $r2 = '/[a-z]/';  //  小写字母
        $r3 = '/[!@#$%^&*()\-_=+{};:,<.>]/';  //  特殊字符
        $r4 = '/[0-9]/';  //  数字
        if (preg_match_all($r1, $candidate, $o) < 1) return '至少有一个大写字母';
        if (preg_match_all($r2, $candidate, $o) < 1) return '至少有一个小写字母';
        if (preg_match_all($r3, $candidate, $o) < 1) return '至少有一个特殊字符';
        if (preg_match_all($r4, $candidate, $o) < 1) return '至少有一个数字';
        if (strlen($candidate) < 8) return '至少8个字符';

        return true;
    }
}

/**
 * 判断按钮权限
 */
if (!function_exists('checkBtn')) {
    function checkBtn($path = '', $permissionsList = [])
    {
        return true;  //permission todo
        $path = explode('?', $path)[0];
        if (in_array($path, $permissionsList, true) || in_array('/' . $path, $permissionsList, true)) {
            return true;
        }
        return false;
    }
}

if (! function_exists('pinyin')) {
    /**
     * Get the Pinyin of given string.
     *
     * @param  string $string
     * @param  string $option
     *
     * @return string
     */
    function pinyin($string)
    {
        return app(\Overtrue\Pinyin\Pinyin::class)->convert($string, 64);
    }
} else {
    Log::warning('There exist multiple function "pinyin".');
}

if (! function_exists('curl_request')) {
    /**
     * 作者: qiuzijian
     * 注释: curl请求方法
     * @param      $url
     * @param null $data
     * @return bool|string
     */
    function curl_request($url, $data = null)
    {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_SSLVERSION, 1);
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
        if (!empty($data)) {
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        }
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $result = curl_exec($curl);
        if (curl_errno($curl)) {
            return 'Errno' . curl_error($curl);
        }
        curl_close($curl);
        return $result;
    }
}

if (! function_exists('deldir')) {
    /**
     * 作者: qiuzijian
     * 注释: 递归删除目录
     * @param $path
     * @return bool
     */
    function deldir($path){
        //如果是目录则继续
        if(is_dir($path)){
            //扫描一个文件夹内的所有文件夹和文件并返回数组
            $p = scandir($path);
            //如果 $p 中有两个以上的元素则说明当前 $path 不为空
            if(count($p)>2){
                foreach($p as $val){
                    //排除目录中的.和..
                    if($val !="." && $val !=".."){
                        //如果是目录则递归子目录，继续操作
                        if(is_dir($path.$val)){
                            //子目录中操作删除文件夹和文件
                            deldir($path.$val.'/');
                        }else{
                            //如果是文件直接删除
                            unlink($path.$val);
                        }
                    }
                }
            }
        }
        //删除目录
        return rmdir($path);
    }
}
