zoukankan      html  css  js  c++  java
  • php 打包tar.gz

        /**
         * author liuxiaodong
         * date 2019/3/6 09:48
         * @param $data array  imgs
         * @param $name
         * @return array
         * @throws Exception
         */
        public function createTarGz( $data, $name )
        {
            $tmp    = SITE_PATH . '/uploads/tar/' . date( 'dmy' ) . '/';
            if( !is_dir( $tmp ) )
                if( !mkdir( $tmp, 0777, true ) )
                    throw new Exception( '创建目录失败,请检查' );
    
            $tmpTar     = $tmp . $name . '.tar';
            $retfile    = $tmp . $name . '.tar.gz';
            @unlink( $retfile );
    
            try{
                $phar   = new PharData( $tmpTar );
                $phar->addEmptyDir( 'ad' );//业务要求建个ad目录;可以忽略该步
                foreach( $data as $k=> $path ) {
                    $path   = realpath( $path );
                    $ext    = substr( $path, strpos( $path, '.' ) );
                    $phar->addFile( $path, 'ad/' . $k . $ext );//ad 可以忽略
                }
                $phar->compress( Phar::GZ );
            }catch ( Exception $e ) {
                throw new Exception( '压缩包生成失败:' . $e->getMessage() );
            }
    
            if( !file_exists( $retfile ) )
                throw new Exception( '压缩包生成失败' );
            unlink( $tmpTar );
    
            $url        = $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'] . dirname( $_SERVER['SCRIPT_NAME'] );
            return [
                'path'  => str_replace( SITE_PATH, '.', $retfile ),
                'md5'   => md5_file( $retfile ),
                'url'   => str_replace( SITE_PATH, $url, $retfile ),
            ];
        }
  • 相关阅读:
    第六周作业
    2019第四周作业(基础作业+挑战作业)
    第三周作业
    2019第二周基础作业
    求最大值及下标值
    查找整数
    学期总结
    打印沙漏
    币值转换
    远程连接centos7的mysql5.7+ 更改iptables方法
  • 原文地址:https://www.cnblogs.com/lxdd/p/10481836.html
Copyright © 2011-2022 走看看