<?php
/*
 * @Descripttion:
 * @version:
 * @Author: kangkang
 * @Date: 2020-09-30 17:32:46
 * @LastEditors: “wanyongkang” “937888580@qq.com”
 * @LastEditTime: 2023-12-26 16:29:17
 */
/**
 * 浏览器友好的变量输出
 * @param mixed $var 变量
 * @param boolean $echo 是否输出 默认为True 如果为false 则返回输出字符串
 * @param string $label 标签 默认为空
 * @param boolean $strict 是否严谨 默认为true
 * @return void|string
 */
function dd($var, $echo = true, $label = null, $strict = true)
{
    echo (echoBase($var, $echo = true, $label = null, $strict = true));
    exit;
}

/**
 * 浏览器友好的变量输出
 * @param mixed $var 变量
 * @param boolean $echo 是否输出 默认为True 如果为false 则返回输出字符串
 * @param string $label 标签 默认为空
 * @param boolean $strict 是否严谨 默认为true
 * @return void|string
 */
function dump($var, $echo = true, $label = null, $strict = true)
{
    echo (echoBase($var, $echo = true, $label = null, $strict = true));
}

function echoBase($var, $echo = true, $label = null, $strict = true)
{
    $label = ($label === null) ? '' : rtrim($label) . ' ';
    if (!$strict) {
        if (ini_get('html_errors')) {
            $output = print_r($var, true);
            $output = '<pre>' . $label . htmlspecialchars($output, ENT_QUOTES) . '</pre>';
        } else {
            $output = $label . print_r($var, true);
        }
    } else {
        ob_start();
        var_dump($var);
        $output = ob_get_clean();
        if (!extension_loaded('xdebug')) {
            $output = preg_replace('/\]\=\>\n(\s+)/m', '] => ', $output);
            $output = '<pre>' . $label . htmlspecialchars($output, ENT_QUOTES) . '</pre>';
        }
    }
    return $output;
}

//接口返回函数
function result($data = [], $msg = '', $code = 10000)
{
    $info = [
        'Code' => $code,
        'msg' => $msg,
        'data' => $data,
    ];
    echo json_encode($info);
    die;
}

/**
 * @description: 导出csv
 * @param {*}
 * @return {*}
 */
function exportToCsv($fileName = '', $headArr = [], $data = []){
    ini_set('memory_limit','1024M'); //设置程序运行的内存
    ini_set('max_execution_time',0); //设置程序的执行时间,0为无上限
    @ob_end_clean();  //清除内存
    ob_start();
    
    header('Content-Type: text/csv; charset=utf-8');  
    header('Content-Disposition: attachment; filename=data.csv'); 
    header('Expires:0');
    header('Pragma:no-cache');
    $fp=fopen('php://output','w');
    fputcsv($fp,$headArr);
    $index = 0;
    foreach ($data as $item) {
        if($index==1000){ //每次写入1000条数据清除内存
            $index=0;
            ob_flush();//清除内存
            flush();
        }
        $index++;
        fputcsv($fp,$item);
    }
    fclose($fp);


    @ob_flush();
    flush();
    ob_end_clean();
    return;
}


function realname($data){
    header('Content-type:text/html;charset=utf-8');
    //配置您申请的appkey
    $apicode = "8105f0cb8fe4494590af07bea85db6f1";
    
    $url = "https://api.yonyoucloud.com/apis/dst/matchIdentity/matchIdentity";
    
    $method = "POST";
    
    $params = array(
            "idNumber" => $data['id_code'],
            "userName" => $data['name'],
    
    );
    
    $header = array();
    $header[] = "apicode:".$apicode;
    $header[] = "content-type:application/json";
    $header[] = "Content-Type:application/json";
    
    
    $content = linkcurl($url,$method,$params,$header);
    
    $result = json_decode($content,true);
    if($result){
        if($result['success']){
            // print_r($result);
            return true;
        }else{
            return false;
        }
    }else{
        echo "请求失败";die;
    }
}

/**
 * 请求接口返回内容
 * @param  string $url [请求的URL地址]
 * @param  string $params [请求的参数]
 * @param  int $ipost [是否采用POST形式]
 * @return  string
 */
function linkcurl($url,$method,$params=[],$header=[],$header_show =1){
    $httpInfo = array();
    $ch = curl_init();
     
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_FAILONERROR, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, $header_show); //是否显示头信息
     
    if (1 == strpos("$".$url, "https://"))
    {
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    }
    curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 );
    curl_setopt( $ch, CURLOPT_TIMEOUT , 60);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
 
    if($method == "POST" ){
        curl_setopt( $ch , CURLOPT_POST , true );
        curl_setopt( $ch , CURLOPT_POSTFIELDS, $params );
    }else if($params){
        curl_setopt( $ch , CURLOPT_URL , $url.'?'.http_build_query($params) );
    }
    $response = curl_exec( $ch );
    if ($response === FALSE) {
        //echo "cURL Error: " . curl_error($ch);
        return false;
    }
    $httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE );
    $httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) );
    curl_close( $ch );
    return $response;
}
 

//将utf-8字符串转换成字节
function cToMd5($str){
	$md5hex=md5($str);
    $len=strlen($md5hex)/2;
    $md5raw="";
    for($i=0;$i<$len;$i++) { 
        $md5raw=$md5raw . chr(hexdec(substr($md5hex,$i*2,2))); 
    } 
    $keyMd5=base64_encode($md5raw);
    return $keyMd5;
}

//获取IP地址
function getIp()
{
    if (isset($_SERVER["HTTP_CLIENT_IP"]) && $_SERVER["HTTP_CLIENT_IP"] && strcasecmp($_SERVER["HTTP_CLIENT_IP"], "unknown")) {
        $ip = $_SERVER["HTTP_CLIENT_IP"];
    } else {
        if (isset($_SERVER["HTTP_X_FORWARDED_FOR"]) && $_SERVER["HTTP_X_FORWARDED_FOR"] && strcasecmp($_SERVER["HTTP_X_FORWARDED_FOR"], "unknown")) {
            $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
        } else {
            if (isset($_SERVER["REMOTE_ADDR"]) && $_SERVER["REMOTE_ADDR"] && strcasecmp($_SERVER["REMOTE_ADDR"], "unknown")) {
                $ip = $_SERVER["REMOTE_ADDR"];
            } else {
                if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'],
                        "unknown")
                ) {
                    $ip = $_SERVER['REMOTE_ADDR'];
                } else {
                    $ip = "unknown";
                }
            }
        }
    }
    return ($ip);
}

//格式化http接口的请求函数
function formatHttpRequert($data){
    //1001
//f031e77c3055ade88b1db389e85a973a

    $time = time();
    $data['appid'] = 1001;
    $data['timestamp'] = $time;
    ksort($data);
    
    $http_request = http_build_query($data);
    $http_request =str_replace("%2C", ",", $http_request);
    
    $sign = md5($http_request.'f031e77c3055ade88b1db389e85a973a');

    $data ['appid'] = '1001';
    $data ['timestamp'] = $time;
    $data ['sign'] = $sign;

    return $data;
}