| 
									
										
										
										
											2021-11-18 17:57:04 +08:00
										 |  |  |  | <?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)); | 
					
						
							|  |  |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-12-14 17:34:27 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |     /** | 
					
						
							|  |  |  |  |      * 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; | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-18 17:57:04 +08:00
										 |  |  |  | } |