103 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			103 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
<?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;
 | 
						|
    }
 | 
						|
}
 |