110 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			PHP
		
	
	
<?php
 | 
						||
namespace app\service;
 | 
						||
 | 
						||
class Tool
 | 
						||
{
 | 
						||
    //删除文件
 | 
						||
    public static function delFile($path)
 | 
						||
    {
 | 
						||
        if(!empty(trim($path))){
 | 
						||
            $realPath = app()->getRootPath() . ltrim($path, '/');
 | 
						||
            if (file_exists($realPath)) {
 | 
						||
                $info = pathinfo($realPath);
 | 
						||
                $source = $info['dirname'] . "/" . $info['filename'] . '*.' . $info['extension'];
 | 
						||
                foreach(glob($source) as $filename){
 | 
						||
                    if(is_file($filename)){
 | 
						||
                        unlink($filename);
 | 
						||
                    }
 | 
						||
                }
 | 
						||
                clearstatcache();// 清除缓存
 | 
						||
            }
 | 
						||
        }
 | 
						||
    }
 | 
						||
 | 
						||
    /**
 | 
						||
     * 删除目录下的所有文件和子目录
 | 
						||
     * 调用完毕后请用clearstatcache()清理缓存
 | 
						||
     */
 | 
						||
    public static function removeByPath($path)
 | 
						||
    {
 | 
						||
        if(is_dir($path)) {
 | 
						||
            if($handle = @opendir($path)) {
 | 
						||
                while (($file = readdir($handle)) !== false){
 | 
						||
                    if($file != '.' && $file != '..') {
 | 
						||
                        $child = $path.'/'.$file;
 | 
						||
                        is_dir($child) ? self::removeByPath($child) : @unlink($child);
 | 
						||
                    }
 | 
						||
                }
 | 
						||
            }
 | 
						||
            closedir($handle);
 | 
						||
        } elseif (is_file($path)) {
 | 
						||
            @unlink($path);
 | 
						||
        } else {
 | 
						||
            return false;
 | 
						||
        }
 | 
						||
        return true;
 | 
						||
    }
 | 
						||
 | 
						||
    //去除字符串空格
 | 
						||
    public static function trimSpace($str)
 | 
						||
    {
 | 
						||
        return str_replace(' ', '', trim($str));
 | 
						||
    }
 | 
						||
 | 
						||
    /**
 | 
						||
     * CURL请求
 | 
						||
     * @param $url 请求url地址
 | 
						||
     * @param $method 请求方法 get post
 | 
						||
     * @param null $postfields post数据数组
 | 
						||
     * @param array $headers 请求header信息
 | 
						||
     * @param bool|false $debug 调试开启 默认false
 | 
						||
     * @return mixed
 | 
						||
     */
 | 
						||
    static function httpRequest($url, $method = "post", $postfields = null, $headers = array(), $debug = false)
 | 
						||
    {
 | 
						||
        $method = strtoupper($method);
 | 
						||
        $ci = curl_init();
 | 
						||
        /* Curl settings */
 | 
						||
        curl_setopt($ci, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
 | 
						||
        curl_setopt($ci, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0");
 | 
						||
        curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 60); /* 在发起连接前等待的时间,如果设置为0,则无限等待 */
 | 
						||
        curl_setopt($ci, CURLOPT_TIMEOUT, 7); /* 设置cURL允许执行的最长秒数 */
 | 
						||
        curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);
 | 
						||
        switch ($method) {
 | 
						||
            case "POST":
 | 
						||
                curl_setopt($ci, CURLOPT_POST, true);
 | 
						||
                if (!empty($postfields)) {
 | 
						||
                    $tmpdatastr = is_array($postfields) ? http_build_query($postfields) : $postfields;
 | 
						||
                    curl_setopt($ci, CURLOPT_POSTFIELDS, $tmpdatastr);
 | 
						||
                }
 | 
						||
                break;
 | 
						||
            default:
 | 
						||
                curl_setopt($ci, CURLOPT_CUSTOMREQUEST, $method); /* //设置请求方式 */
 | 
						||
                break;
 | 
						||
        }
 | 
						||
        $ssl = preg_match('/^https:\/\//i', $url) ? TRUE : FALSE;
 | 
						||
        curl_setopt($ci, CURLOPT_URL, $url);
 | 
						||
        if ($ssl) {
 | 
						||
            curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts
 | 
						||
            curl_setopt($ci, CURLOPT_SSL_VERIFYHOST, FALSE); // 不从证书中检查SSL加密算法是否存在
 | 
						||
        }
 | 
						||
        curl_setopt($ci, CURLOPT_FOLLOWLOCATION, 1);
 | 
						||
        curl_setopt($ci, CURLOPT_MAXREDIRS, 2);/*指定最多的HTTP重定向的数量,这个选项是和CURLOPT_FOLLOWLOCATION一起使用的*/
 | 
						||
        curl_setopt($ci, CURLOPT_HTTPHEADER, $headers);
 | 
						||
        curl_setopt($ci, CURLINFO_HEADER_OUT, true);
 | 
						||
        $response = curl_exec($ci);
 | 
						||
        $requestinfo = curl_getinfo($ci);
 | 
						||
        if ($debug) {
 | 
						||
            echo "=====post data======\r\n";
 | 
						||
            var_dump($postfields);
 | 
						||
            echo "=====info===== \r\n";
 | 
						||
            print_r($requestinfo);
 | 
						||
            echo "=====response=====\r\n";
 | 
						||
            print_r($response);
 | 
						||
        }
 | 
						||
        curl_close($ci);
 | 
						||
        return $response;
 | 
						||
    }
 | 
						||
 | 
						||
}
 |