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;
 | ||
|     }
 | ||
| 
 | ||
| }
 |