知识分享

您当前的位置:首页 > 新闻资讯 > 知识分享

 湘潭网站建设|湘潭做网站|湘潭网站设计|湘潭网站建设|湘潭网站制作|湘潭网络公司|湘潭云主机|湘潭网络营销 湘潭微信服务|湘潭微信营销|湘潭微信公众号申请/认证|湘潭微网站|湘潭微信公众平台代维 湘潭网站推广|湘潭网站优化|湘潭seo优化推广|湘潭网站排名|湘潭关键词优化排名|湘潭关键词推广 湘潭软件开发|湘潭软件开发公司 湘潭微信小程序制作|微信小程序

PHP实现图片批量压缩

发布者:imhh     发布时间:2018-10-17
set_time_limit(0);
global $source_dir;
global $target_dir;
$source_dir = "D:/images/";//目标路径
$target_dir = 'D:/finish/';//最终路径

/*开始扫描文件夹*/
scan_dir($source_dir);
//exit('finish');


function log_msg($msg){
    echo "$msg\r\n";
}

/**
 * 转移文件
 * @param $path_file
 * @return array
 */
function move_file($path_file){
    $path_file = rtrim($path_file,'/');
    if (!is_file($path_file)) return array('msg'=>'图片不存在','status'=>false);

    global $source_dir;
    global $target_dir;

    $file_name = substr($path_file,strrpos($path_file,'/')+1);
    $dir = substr($path_file,0,strrpos($path_file,'/')+1);
    $imginfo= getimagesize($path_file);
    $ext = strtolower(substr(end($imginfo),strrpos(end($imginfo),'/')+1));
    $new_dir = str_replace($source_dir,$target_dir,$dir);
    if (!is_dir($new_dir)){
        $rs = mkdir($new_dir,0777,true);
        if (!$rs) return array('msg'=>'创建文件夹失败','status'=>false);
    }
    /*新文件名*/
    $new_file_name = substr($file_name,0,strrpos($file_name,'.')).".jpg";
    $path_new_file = "{$new_dir}{$new_file_name}";
    switch ($ext){
        case "png":
            $file = imagecreatefrompng($path_file);
            imagejpeg($file,$path_new_file);
            break;
        case "gif":
            $file = imagecreatefromgif($path_file);
            imagejpeg($file,$path_new_file);
            break;
        case "jpg":
        case "jpeg":
        default:
            $file = imagecreatefromjpeg($path_file);
            imagejpeg($file,$path_new_file);
            break;
    }
    return array('msg'=>'success','status'=>true);
}


/**
 * 扫描文件夹
 * @param $path_dir
 */
function scan_dir($path_dir){
    if (!is_dir($path_dir)) return false;
    $rs = scandir($path_dir);
    foreach ($rs as $k => $v){
        if ($v === '.' || $v === '..') continue;
        $path = $path_dir.rtrim($v,'/');
        if (is_file($path)){
            $rs = move_file($path);
            if ($rs['status']){
                $rs = "finish";
            }else{
                $rs = $rs['msg'];
            }
            log_msg("{$path}---{$rs}");
            continue;
        }
        if (is_dir($path."/")) scan_dir($path."/");
    }
}


分享到:
咨询邮箱:hndns@hndns.cn  咨询服务热线:13907328139   客服电话:0731-52815678
版权所有:湘潭湘软网络科技服务有限责任公司    海内互联   备案号:湘ICP备19020696号-1   技术支持:海内互联
湘潭网络建设   湘潭网络公司   湘潭微信网站   湘潭手机网站