国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

文件操作方法內(nèi)容學(xué)習(xí)代碼練習(xí)

Original 2019-02-16 17:48:49 253
abstract:<?php //封裝文件操作方法庫(kù) /**文件創(chuàng)建操作 *@param $filename  //需要?jiǎng)?chuàng)建的文件名 *@return string    //提示信息 **/ function create_file($filename) { //判斷目錄或文件是否存在,不存在則創(chuàng)建 if(file
<?php
//封裝文件操作方法庫(kù)
/**文件創(chuàng)建操作
*@param $filename  //需要?jiǎng)?chuàng)建的文件名
*@return string    //提示信息
**/
function create_file($filename)
{
	//判斷目錄或文件是否存在,不存在則創(chuàng)建
	if(file_exists($filename)){
		return '文件已存在!';
	} 
	// 獲取文件名稱(chēng),判斷不存在創(chuàng)建
	if (!file_exists(dirname($filename))){
		mkdir(dirname($filename),0777,true);
	}
	if(touch($filename)){
		return '文件創(chuàng)建成功!';
	}
	return '文件創(chuàng)建失??!';
}

//var_dump(create_file('text1.txt'));
//var_dump(create_file('file/text1.txt'));
//刪除方法
/**
*@param $filename //刪除的文件名稱(chēng)
*@return string 提示信息
*/
function del_file($filename){
	//查詢(xún)文件是否存在file_exists,判斷文件是否可寫(xiě)is_writable,
	if(!file_exists($filename)&&!is_writable($filename)){
		return '此文件不可刪除!';
	}
	//unlink直接刪除文件并反饋
	if (unlink($filename)){
		return '文件刪除成功!';
	}
	return '文件刪除失?。?#39;;
}

//echo del_file('text1.txt');
//echo del_file('file/text1.txt');
//文件夾無(wú)法刪除
//echo del_file('file');

//復(fù)制文件操作
/**
*@param $filename  //需要復(fù)制的文件名
*@param $dest      //目標(biāo)目錄或者文件名
*@return string    //提示信息
*/
function copy_file($filename,$dest){
	//查詢(xún)文件是否存在并查詢(xún)是否可寫(xiě)
	if(!file_exists($filename)&&!is_writable($filename)){
		return '此文件不可復(fù)制!';
	}
	//查詢(xún)判斷目錄是否存在
	if(!is_dir($dest)){
		mkdir($dest,0777,true);
	}
	//拼接
	$destname = $dest.'/'.basename($filename);
	//查詢(xún)是否存在重名文件
	if(file_exists($destname)){
		return '該目錄此文件已存在!';
	}
	//復(fù)制并反饋
	if(copy($filename,$destname)){
		return '文件復(fù)制成功!';
	}
	return '文件復(fù)制失??!';
}

//echo copy_file('text1.txt','file');

//文件重命名操作
/**
*@param $oldname  //需要重命名的文件名
*@param $newname  //目標(biāo)文件名
*@ruturn string   //提示信息
*/
function rename_file($oldname,$newname){
	//判斷文件是否存在并是否可寫(xiě)
	if(!file_exists($oldname)&&!is_writable($oldname)){
		return '此文件不可重命名!';
	}
	//獲取文件當(dāng)前路徑  dirname()用pathinfo 函數(shù) 加上參數(shù) PATHINFO_DIRNAME 進(jìn)行替換
	$path = dirname($oldname);
	$destname = $path.'/'.$newname;
	if(file_exists($destname)){
		return '此文件已存在!';
	}
	//重命名操作并驗(yàn)證
	if (rename($oldname,$newname)){
		return '文件重命名成功!';
	}
	return '文件重命名失敗!';
}
//echo rename_file('text10.txt','text10.txt');


//文件剪切
/**
*param $filename //需要剪切的文件
*param $dest     //目標(biāo)目錄
*return          //提示信息
*/
function cut_file($filename,$dest){
	//判斷文件
	if(!is_file($filename)){
		return '該文件不可剪切';
	}
	//is_dir判斷目錄是否存在
	if(!is_dir($dest)){
		mkdir($dest,0777,true);
	}
	//拼接文件路徑
	$destName = $dest.'/'.basename($filename);
	//檢查是否存在同名文件
	if(is_file($destName)){
		return '該文件已存在';
	}
	//執(zhí)行剪切  rename()重命名和剪切操作
	if(rename($filename,$destName)){
		return '剪切成功';
	}else {
		return '剪切失敗';
	}
}

//echo cut_file('text1.txt','file');

//文件信息查詢(xún)操作
/**
*@param $filename     //需要查詢(xún)的文件名稱(chēng)
*@return array|string //文件信息
*/
function get_file_info($filename){
	//判斷文件是否正常并判斷是否可讀
	if(!is_file($filename) && !is_readable($filename)){
		return '該文件不可讀取數(shù)據(jù)';
	}
	return[
	//文件類(lèi)型查詢(xún)
	'type' => filetype($filename),
	//文件創(chuàng)建時(shí)間查詢(xún)
	'ctime' => date("Y-m-d H:i:s",filectime($filename)),
	//文件最后的修改時(shí)間查詢(xún)
	'mtime' => date('Y-m-d H:i:s',filemtime($filename)),
	//文件最后的訪問(wèn)時(shí)間查詢(xún)
	'atime' => date('Y-m-d H:i:s',fileatime($filename)),
	//文件字節(jié)大小查詢(xún)  trans_byte()字節(jié)轉(zhuǎn)換成大小
	'size' => trans_byte(filesize($filename))
	];
}

var_dump(get_file_info('text1.txt'));
echo '<hr>';
//字節(jié)轉(zhuǎn)換文件大小
/**
*@param $byte   //字節(jié)大小
*@param int $precision   //保留小數(shù)位
*@return  string    //反饋信息
*/
function trans_byte($byte,$precision=2){
	$KB = 1024;
	$MB = 1024*$KB;
	$GB = 1024*$MB;
	$TB = 1024*$GB;
	if($byte<$KB){
		return $byte.'B';
	}elseif($byte<$MB){
		//round()四舍五入
		return round($byte/$KB,$precision).'KB';
	}elseif($byte<$GB){
		return round($byte/$MB,$precision).'MB';
	}elseif($byte<$TB){
		return round($byte/$GB,$precision).'GB';
	}else{
		return round($byte/$TB,$precision).'TB';
	}

}
/**
*文件讀取操作
*@param $filename  //需要讀取的文件名
*@return bool|string  //文件內(nèi)容|提示信息
*/
function read_file($filename){
	//檢查文件是否可讀并檢查文件是否正常
	if(is_file($filename) && is_readable($filename)){
		return file_get_contents($filename);
	}
	return '該文件不可讀!';
}
//echo read_file('text1.txt');
/**
*文件以數(shù)組的形式讀取返回,每一行
*@param $filename   //需要查詢(xún)內(nèi)容的文件名
*@param bool $skip_empty_lines //是否跳過(guò)空行
*@return array|bool|string 
*/
function read_file_array($filename,$skip_empty_lines =false)
{
	//檢查文件是否正常并檢查是否可讀
	if(is_file($filename) && is_readable($filename)){
		//判斷是否跳過(guò)空行
		if($skip_empty_lines == true){
			//查詢(xún)文件內(nèi)容
			return file($filename,FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
		}else{
			return file($filename);
		}
	}
	return '該文件無(wú)法讀取';
}
//var_dump(read_file_array('text1.txt'));
echo '<hr>';


/**文件寫(xiě)入的操作
*@param $filename  //目標(biāo)文件
*@param $data      //寫(xiě)入數(shù)據(jù)
*@param bool $clear  //是否清空內(nèi)容
*return string     提示信息
*/
function write_file($filename,$data,$clear =false)
{
	//獲取文件目錄
	$dirname = dirname($filename);
	//判斷目錄是否存在
	if(!file_exists($dirname)){
		mkdir($dirname,0777,true);
	}
	//判斷數(shù)據(jù)類(lèi)型
	if(is_array($data)||is_object($data)){
		$data = serialize($data);
	}
	//判斷是否清空原文件內(nèi)容
	if($clear == false){
		//判斷文件是否正常并可讀
		if(is_file($filename) && is_readable($filename)){
			//判斷是否有內(nèi)容
			if(filesize($filename)>0){
				//獲取源文件內(nèi)容
				$srcData =file_get_contents($filename);
				//拼接內(nèi)容
				$data = $srcData.$data;
			}
		}
	}
	//寫(xiě)入內(nèi)容并判斷
	if(file_put_contents($filename,$data)){
		return '文件寫(xiě)入成功';
	}
	return '文件寫(xiě)入失敗';
}
$data = [
	'name'=>'小龍女',
	'age'=>20
];
//echo write_file('text1.txt','php學(xué)習(xí)重在練習(xí)');
//echo write_file('text1.txt',$data);

//下載文件操作
/**
*@param $filename  //需要下載的文件名
*/
function dow_file($filename)
{
	//告訴瀏覽器返回文件的大小
	header('Accept-Length:'.filesize($filename));
	//告訴瀏覽器文件作為附件處理,下載完的文件名
	header('Content-Disposition:attachment;filename='.basename($filename));
	//輸出文件
	redafile($filename);
}
// dow_file('www.zip');
//dow_file('tupian.jpg')

//單文件的上傳操作
/**
*@param $fileInfo     //上傳的文件信息
*@param string $uploadPath//上傳的指定目錄
*@param array $allowExt//上傳文件的類(lèi)型
*@param int $maxSize//上傳的最大值
*@return string   //提示信息
*/
function upload_file($fileInfo,$uploadPath='./upload',$alllowExt=['jpg','png','txt','html','csv'],$maxSize=1000000)
{
	//判斷文件錯(cuò)誤號(hào)
	if($fileInfo['error'] === 0){
		//pathinfo()獲取文件后綴,strtolower()轉(zhuǎn)換成小寫(xiě)
		$ext = strtolower(pathinfo($fileInfo['name'],PATHINFO_EXTENSION));
		//判斷文件類(lèi)型
		if(!in_array($ext, $alllowExt)){
			return '非法文件類(lèi)型!';
		}
		//判斷文件大小
		if($fileInfo['size']>$maxSize){
			return '超出文件上傳的最大值';
		}
		//判斷文件上傳方式POST
		if(!is_uploaded_file($fileInfo['tmp_name'])){
			return '非法上傳操作';
		}
		//判斷移動(dòng)的目錄是否存在,如果沒(méi)有創(chuàng)建
		if(!is_dir($uploadPath)){
			mkdir($uploadPath,0777,true);
		}
		//uniqid()生成唯一的文件ID,重命名文件名不重復(fù)
		$uniName = md5(uniqid(microtime(true),true)).'.'.$ext;
		//拼接路徑及文件名
		$dest = $uploadPath.'/'.$uniName;
		//將文件移動(dòng)到指定目錄
		if(!move_uploaded_file($fileInfo['tmp_name'], $dest)){
			return '文件上傳失敗';
		}
		return '文件上傳成功';
	}else{
		switch($fileInfo['error']){
			case 1:
				$res = '上傳的文件超過(guò)了 php.ini 中 upload_max_filesize 選項(xiàng)限制的值。';
				break;
			case 2:
				$res = '上傳文件的大小超過(guò)了 HTML 表單中 MAX_FILE_SIZE 選項(xiàng)指定的值。';
				break;
			case 3:
				$res = '文件只有部分被上傳';
				break;
			case 4:
				$res = '沒(méi)有文件被上傳';
				break;
			case 6:
				$res = '找不到臨時(shí)文件夾。PHP 4.3.10 和 PHP 5.0.3 引進(jìn)。';
				break;
			case 7:
				$res = '文件寫(xiě)入失敗。PHP 5.1.0 引進(jìn)。';
				break;
		}
		return $res;
	}
}


Correcting teacher:滅絕師太Correction time:2019-02-16 18:12:32
Teacher's summary:寫(xiě)的很不錯(cuò), 封裝這個(gè)方法庫(kù)是為了后面的web文件管理系統(tǒng)做準(zhǔn)備 同時(shí)還可以當(dāng)做鍛煉了一些函數(shù) 繼續(xù)加油吧!

Release Notes

Popular Entries