103 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			103 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | namespace app\service; | ||
|  | 
 | ||
|  | use app\model\Category; | ||
|  | use app\model\Article; | ||
|  | 
 | ||
|  | 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'] . DIRECTORY_SEPARATOR . $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)); | ||
|  |     } | ||
|  | 
 | ||
|  | 
 | ||
|  |     //获取文章链接
 | ||
|  |     public static function getArticleUrl($article) | ||
|  |     { | ||
|  |         if(empty($article)){ | ||
|  |             return ''; | ||
|  |         } | ||
|  |         // if(!empty($article['link'])){
 | ||
|  |         //     return $article['link'];
 | ||
|  |         // }
 | ||
|  |         if(empty($article['route'])){ | ||
|  |             return url('article/detail', ['id' => $article['id']]); | ||
|  |         } | ||
|  |         $category = Category::getById($article['category_id']); | ||
|  |         $categoryRoute = ''; | ||
|  |         if(isset($category['route']) && !empty($category['route'])){ | ||
|  |             $categoryRoute = $category['route']; | ||
|  |         } | ||
|  |         $url = '/'; | ||
|  |         if(!empty($categoryRoute)){ | ||
|  |             $url .= $categoryRoute . '/'; | ||
|  |         } | ||
|  |         return $url . $article['route'] . '.html'; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * 格式化金钱字段 | ||
|  |      * @param $money | ||
|  |      * @return float | ||
|  |      */ | ||
|  |     public static function moneyFormat($money) | ||
|  |     { | ||
|  |         $money = is_string($money) ? trim($money) : $money; | ||
|  |         return is_numeric($money) ? number_format($money, 2, '.', '') : 0; | ||
|  |     } | ||
|  |     // 获取客户端IP
 | ||
|  |     public static function get_client_ip() { | ||
|  |         $forwarded = request()->header("x-forwarded-for"); | ||
|  |         if($forwarded){ | ||
|  |             $ip = explode(',',$forwarded)[0]; | ||
|  |         }else{ | ||
|  |             $ip = request()->ip(); | ||
|  |         } | ||
|  |         return $ip; | ||
|  |     } | ||
|  | } |