<?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...
// }
// }