<?php
//require '../composer/vendor/autoload.php';
//use GuzzleHttp\Client;

/**
  * @method 发送
  * @http  GET|POST
  * @param  $url                string [必填]
  * @param  $get_arr            array  [可选]
  * @param  $post_arr           array  [可选]
  * @param  $header             array  [可选]
  * @return array
  */
function _iohtml($url, $get_arr=[], $post_arr=[],$header=[],$timeout=120)
{
	if(!empty($get_arr)){
		$url = $url.'?'.http_build_query($get_arr);
	}
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
	if(!empty($header)){
		curl_setopt($ch, CURLOPT_HTTPHEADER, $header);//设置请求头
	}
	if(!empty($post_arr)){
		curl_setopt($ch, CURLOPT_POST, true);
		curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_arr));
	}
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	$ssl = substr($url, 0, 8) == "https://" ? true : false;
	if($ssl){
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
	}
	$html = curl_exec($ch);
	curl_close($ch);
	return $html;
}

/**
  * @method 发送
  * @http  GET
  * @param  $url                string [必填]
  * @param  $get_arr            array  [可选]
  * @return array
  */
function ioGet($url, $get_arr=[],$header=[],$timeout=120){
	return _iohtml($url,$get_arr,null,$header,$timeout);
}
function ioGetJson($url, $get_arr=[],$header=[],$timeout=120){
    $html = _iohtml($url,$get_arr,null,$header,$timeout);
    if($html && substr($html,0,1)=='{'){
	    return json_decode($html,true);
    }else{
        return [];
    }
}

/**
  * @method 发送
  * @http  POST
  * @param  $url                string [必填]
  * @param  $post_arr           array  [可选]
  * @return array
  */
function ioPost($url, $post_arr=[],$header=[],$timeout=120){
	return _iohtml($url,null,$post_arr,$header,$timeout);
}
function ioPostJson($url, $post_arr=[],$header=[],$timeout=120){
	return json_decode(_iohtml($url,null,$post_arr,$header,$timeout),true);
}



function ioProxyGet($url){
    // 设置 ShadowsocksR 服务器信息
    $ssrHost = 'b.aaaaaa.link';
    $ssrPort = 7637;
    $ssrPassword = '123456';
    
    // 创建 Guzzle HTTP 客户端，并设置代理
    $client = new Client([
        'base_uri' => 'https://www.yiparts.com',
        'proxy' => [
            'http'  => "socks5://{$ssrHost}:{$ssrPort}",
            'https' => "socks5://{$ssrHost}:{$ssrPort}",
        ],
    ]);
    // 发送 GET 请求
    $response = $client->get('/');
    
    //响应内容
    return $response->getBody();
}
$url = $_REQUEST['url'];
preg_match('#/maps/([^/]+)/map#',$url,$m);
$type_dir = $m[1]; //哪个地图
$dir = '../maps/'.$type_dir.'/map_files';
preg_match('#[^/]+(\d+)#',$dir,$m);
$level = $m[1];//哪一层
if($level>0){
    //前端已处理
    //echo $url;//1层以上的不保存图片(太大了)
    //exit();
}

if(!is_dir($dir)) mkdir($dir);

if(empty($url)) exit('no $url');
$basename = basename($url);
preg_match('#map_files/([^/]+)/#',$url,$m);
$sub_dir = $m[1];
if(empty($sub_dir)) exit('no $sub_dir');
$path = $dir.'/'.$sub_dir;
$filename = $path.'/'.$basename;
if(!is_dir($path)) mkdir($path);
if(!file_exists($filename)){
    $imgData = ioGet($url);
    if(!empty($imgData)){
        file_put_contents($filename,$imgData);
    }else{
        echo "获取图片失败\r\n";
    }
}
//输出本地图片网址
$Http = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';  
$Http =  $Http.$_SERVER['HTTP_HOST'];
$Http = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';  
$Http =  $Http.$_SERVER['HTTP_HOST'];
preg_match('#([^:]+)/qg/#',$_SERVER['PHP_SELF'],$m);
$Http .= $m[1];
ob_clean();
echo $Http.'/'.substr($filename,3);
exit();