PHP文件操作

<?php

/*

 * @Author: your name

 * @Date: 2020-08-13 17:28:27

 * @LastEditTime: 2020-08-14 10:36:53

 * @LastEditors: Please set LastEditors

 * @Description: In User Settings Edit

 * @FilePath: \shop\filef.php

 */

/**

 * 创建文件操作

 */

function create_file(string $filename){

    if(file_exists($filename)){

        return false;

    }

    if(!file_exists(dirname($filename))){

        mkdir(dirname($filename),0777,true);

    }

    if(touch($filename)){

        return true;

    }

    return false;

}

/**

 * 删除文件操作

 */

// var_dump(create_file('a/4.txt'));

function del_file(string $filename){

    if(!file_exists($filename)||!is_writeable($filename)){

        return false;

    }

    if(unlink($filename)){

        return true;

    }

    return false;

}

// var_dump(del_file('1.txt'));

 

function copy_file(string $filename,string $dest){

    if(!is_dir($dest)){

        mkdir($dest,0777,true);

    }

    $destName=$dest.DIRECTORY_SEPARATOR.basename($filename);

    if(file_exists($destName)){

        return false;

    }

    if(copy($filename,$destName)){

        return true;

    }

 return false;

}

// var_dump(copy_file('2.txt','a'));

function rename_file(string $oldname,string $newname){

    if(!is_file($oldname)){

        return false;

    }

    $path=dirname($oldname);

    $destName=$path.DIRECTORY_SEPARATOR.$newname;

    if(is_file($destName)){

        return false;

    }

    if(rename($oldname,$destName)){

        return true;

    }

    return false;

}

// var_dump(rename_file('22.txt','333.txt'));

function cut_file(string $filename,string $dest){

    if(!is_file($filename)){

        return false;

    }

if(!is_dir($dest)){

    mkdir($dest,0777,true);

}

$destName=$dest.DIRECTORY_SEPARATOR.basename($filename);

if(is_file($destName)){

    return false;

}

if(rename($filename,$destName)){

    return true;

}

return false;

}

// var_dump(cut_file('333.txt','a'));

function get_file_info(string $filename){

    if(!is_file($filename)||!is_readable($filename)){

        return false;

    }

    return[

        'atime'=>date("Y-m-d H:i:s",fileatime($filename)),

        'mtime'=>date("Y-m-d H:i:s",filemtime($filename)),

        'ctime'=>date("Y-m-d H:i:s",filectime($filename)),

        'size'=>filesize($filename),

        'type'=>filetype($filename)

    ];

}

// var_dump(get_file_info("4.txt"));

function trans_byte(int $byte,int $prescision=2){

    $kb=1024;

    $mb=1024*$kb;

    $gb=1024*$mb;

    $tb=1024*$gb;

    if($byte<$kb){

        return $byte.'B';

    }elseif($byte<$mb){

        return round($byte/$kb,$prescision).'KB';

    }elseif($byte<$gb){

        return round($byte/$mb,$prescision).'MB';

    }

elseif($byte<$tb){

    return round($byte/$gb,$prescision).'GB';

}else{

    return round($byte/$tb,$prescision).'TB';

}

}

// var_dump(trans_byte(12345678));

function read_file(string $filename){

    if(is_file($filename)&&is_readable($filename)){

        return file_get_contents($filename);

    }

    return false;

}

// var_dump(read_file("3.txt"));

function read_file_array(string $filename,bool $skip_empty_lines=false){

    if(is_file($filename)&&is_readable($filename)){

       if($skip_empty_lines){

           return file($filename,FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);

       }else {

           return file($filename);

       }

       

    }

    return false; 

}

// var_dump(read_file_array('3.txt',true));

function write_file(string $filename,$data){

   $dirname=dirname($filename);

   if(!file_exists($dirname)){

       mkdir($dirname,0777,true);

   }

   if(is_array($data)||is_object($data)){

       $data=serialize($data);

   }

   if(file_put_contents($filename,$data)!==false){

       return true;

   }

   else{

       return false;   }

}

// var_dump(write_file('22.txt','aqwertyuio'));

function down_file(string $filename,array $allowDownExt=['jpg','jpeg','txt','zip','csv']){

    if(!is_file($filename)||!is_readable($filename)){

        return false;

    }

    $ext=strtolower(pathinfo($filename,PATHINFO_EXTENSION));

    if(!in_array($ext,$allowDownExt)){

        return false;

    }

    header('content-type:application/octet-stream');

    header('Accept-Ranges:bytes');

    header('Accept-Length:',filesize($filename));

    header('Content-Disposition:attachment;filename='.basename($filename));

    readfile($filename);

    exit;

}

function down_file1(string $filename,array $allowDownExt=['jpg','jpeg','txt','zip','csv']){

    if(!is_file($filename)||!is_readable($filename)){

        return false;

    }

    $ext=strtolower(pathinfo($filename,PATHINFO_EXTENSION));

    if(!in_array($ext,$allowDownExt)){

        return false;

    }

    header('content-type:application/octet-stream');

    header('Accept-Ranges:bytes');

    header('Accept-Length:',filesize($filename));

    header('Content-Disposition:attachment;filename='.basename($filename));

    // readfile($filename);

    $read_buffer=1024;

    $sum_buffer=0;

    $handle=fopen($filename,'rb');

    while(!feof($handle)&& $summ_buffer<$filesize($filename)){

        echo fread($handle,$read_buffer);

    $sum_buffer+=$read_buffer;

    }

    fclose($handle);

    exit;

}

// function upload_file(array $fileInfo){

//     if($fileInfo['error']==UPLOAD_ERR_OK){

//      }

//       else {

//             # code...

//         }

// }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值