溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php文件操作

發(fā)布時(shí)間:2020-07-03 19:13:52 來源:網(wǎng)絡(luò) 閱讀:330 作者:李生虎lsh 欄目:web開發(fā)

<?php

header('Content-type:text/html;charset=utf-8');



/**

 * [checkFilename 檢驗(yàn)文件名的合法性]

 * @param  [string] $filename [文件名]

 * @return [bool]           [合法返回真]

 */

function checkFilename($filename){

$pattern='/[\/,\*,<>,\?\|]/';

if(preg_match($pattern, $filename)){

return false;

}else{

return true;

}


}


#文件夾操作


/**

*遍歷目錄函數(shù),只讀取目錄中最外層的內(nèi)容

* @param string $path

* @return array

*/

function readDirectory($path){

echo $path;

$arr=array();

$handle=opendir($path);

while (($item=readdir($handle))!==false) {//運(yùn)用不全等于,防止文件名為0

if($item!='.'&&$item!='..'){

$p=$path.'/'.$item;

if(is_file($p)){

$arr['file'][]=$item;

}elseif(is_dir($p)){

$arr['dir'][]=$item;

}

}

}

closedir($handle);

return $arr;

}

/**

 * 得到文件夾的大小

 * @param  [string] $path文件夾的路徑

 * @return [int] 返回文件夾的大小

 */

function getDirSize($path){

$sum=0;

$handle=opendir($path);

while (($item=readdir($handle))!==false) {

$p=$path.'/'.$item;

if($item!='.'&&$item!='..'){

if(is_file($p)){

global $sum;

$sum+=filesize($p);

}elseif(is_dir($p)){

$func=__FUNCTION__;

$func($p);

}

}

}

closedir($handle);

return $sum;

}

/**

 * 創(chuàng)建一個(gè)文件夾

 * @param  [string] 文件夾名

 * @return [string]          [創(chuàng)建成功返回對(duì)應(yīng)的提示]

 */

function createFolder($dirname){

//檢測文件夾名稱的合法性

if(checkFilename(basename($dirname))){

//當(dāng)前目錄下是否存在同名文件夾名稱

if(!file_exists($dirname)){

if(mkdir($dirname,0777,true)){//0777最大文件權(quán)限,true表示可以創(chuàng)建子目錄

$mes='文件夾創(chuàng)建成功';

}else{

$mes='文件夾創(chuàng)建失??!';

}

}else{

$mes='存在同名文件夾';

}

}else{

$mes='非法文件夾名稱';

}

return $mes;

}

/**

 * 重命名文件夾

 * @param  [string] $oldname [原文件夾名]

 * @param  [string] $newname [新文件夾名]

 * @return [string]          [返回對(duì)應(yīng)的信息]

 */

function renameFolder($oldname,$newname){

if(checkFilename(basename($newname))){

//檢測到當(dāng)前目錄下是否存在同名文件夾名稱

if(!file_exists($newname)){

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

$mes='重命名成功';

}else{

$mes='重命名失敗';

}

}else{

$mes='存在同名文件夾';

}

}else{

$mes='非法文件夾名稱';

}

return $mes;

}

/**

 * 復(fù)制文件夾

 * @param  [string] $srcdir [源文件夾名]

 * @param  [string] $dstdir [目標(biāo)文件夾名]

 * @return [string]         [返回信息描述]

 */

function copyFolder($srcdir,$dstdir){

if(!file_exists($srcdir)){

return '原文件夾不存在';

}

if(!file_exists($dstdir)){

mkdir($dstdir,0777,true);

}

$handle=opendir($srcdir);

while(($item=readdir($handle))!=false){

if($item!='.'&&$item!='..'){

$sp=$srcdir.'/'.$item;

$dp=$dstdir.'/'.$item;

if(is_file($sp)){

copy($sp,$dp);

}elseif(is_dir($sp)){

$func=__FUNCTION__;

$func($sp,$dp);

}

}

}

closedir($handle);

return '復(fù)制成功';

}

/**

 * 剪切文件夾

 * @param  [string] $srcdir [源文件夾]

 * @param  [string] $dstdir [目標(biāo)文件夾]

 * @return [string]         [返回剪切文件夾信息]

 */

function cutFolder($srcdir,$dstdir){

echo basename($srcdir);

echo $dstdir.'/'.basename($srcdir);

if(!file_exists($srcdir)){

$mes='源文件夾不存在';

}elseif(file_exists($dstdir)){

if(is_dir($dstdir)){

if(rename($srcdir,$dstdir.'/'.basename($srcdir))){

$mes='剪切成功';

}else{

$mes='剪切失敗';

}

}else{

$mes='目標(biāo)文件夾不是一個(gè)文件夾';

}

}else{

$mes='目標(biāo)文件夾不存在';

}

return $mes;

}

/**

 * 刪除目錄

 * @param  [string] $path [要?jiǎng)h除文件的路徑]

 * @return [string]       [返回錯(cuò)誤信息]

 */

function delFolder($path){

if(!($handle=opendir($path))){

return '要?jiǎng)h除的文件不存在';

}else{

while(($item=readdir($handle))!==false){

if($item!='.'&&$item!='..'){

$p=$path.'/'.$item;

if(is_file($p)){

unlink($p);

}elseif(is_dir($p)){

$func=__FUNCTION__;

$func($p);

}

}

}

closedir($handle);

rmdir($path);

return '刪除文件成功';

}

}



#文件操作


/**

 * 轉(zhuǎn)換字節(jié)大小

 * @param  [number] $filesize [問價(jià)大小]

 * @return [string]           [返回帶單位的文件大小]

 */

function transByte($filesize){

$arr=array('B','KB','MB','GB','TB','EB');

$i=0;

while ($filesize>=1024) {

$filesize/=1024;

$i++;

}

return round($filesize,2).$arr[$i];

}

/**

 * 創(chuàng)建文件

 * @param  [string] $filename [要?jiǎng)?chuàng)建的文件名]

 * @return [string]           [返回創(chuàng)建文件的信息]

 */

function createFile($filename){

if(!checkFilename($filename)){

return '文件名非法';

}elseif(file_exists($filename)){

return '文件已存在';

}elseif(!touch($filename)){//創(chuàng)建文件的函數(shù)

return '文件創(chuàng)建失敗';

}

return '文件創(chuàng)建成功';

}

/**

 * [renameFile description]

 * @param  [string] $oldname [description]

 * @param  [string] $newname [description]

 * @return [string]          [description]

 */

function renameFile($oldname,$newname){

if(!file_exists($oldname)){

return '源文件不存在';

}elseif(checkFilename($newname)){

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

return '重命名成功';

}else{

return '重命名文件失敗';

}

}else{

return '目標(biāo)文件名非法';

}

}

/**

 * 刪除文件

 * @param  [string] $filename [要?jiǎng)h除的文件名]

 * @return [type]           [返回文件刪除信息]

 */

function delFile($filename){

if(unlink($filename)){

$mes='文件刪除成功';

}else{

$mes='文件刪除失敗';

}

return $mes;

}

/**

 * 下載文件

 * @param  [string] $filename [要下載的文件名]

 * @return [type]           [description]

 */

function downFile($filename){

//content-disposition:p_w_upload:內(nèi)容配置:附件

header('content-disposition:p_w_upload;filename='.basename($filename));

header('content-length:'.filesize($filename));

readfile($filename);

}

/**

 *復(fù)制文件

 * @param  [string] $srcfile [復(fù)制的源文件]

 * @param  [string] $dstfile [目標(biāo)文件]

 * @return [string]          [返回對(duì)應(yīng)的信息]

 */

function copyFile($srcfile,$dstfile){

if(!file_exists($srcfile)){

return '源文件不存在';

}

if(file_exists($dstfile)){

if(copy($srcfile,$dstfile.'/'.basename($srcfile))){

return '文件復(fù)制成功';

}else{

return '文件復(fù)制失敗';

}

}else{

return '目標(biāo)文件已存在';

}

}

/**

 * 剪切文件

 * @param  [string] $srcfile [源文件]

 * @param  [string] $dstfile [目標(biāo)文件]

 * @return [string]          [返回對(duì)應(yīng)的信息]

 */

function cutFile($srcfile,$dstfile){

if(!file_exists($srcfile)){

return '源文件不存在';

}

if(file_exists($dstfile)){

if(rename($srcfile,$dstfile.'/'.basename($srcfile))){

return '文件剪切成功';

}else{

return '文件剪切失敗';

}

}else{

return '目標(biāo)目錄不存在';

}

}

/**

 * 表單文件上傳

 * @param  [string]  $fileInfo [$_FILE中前臺(tái)上傳按鈕對(duì)應(yīng)的的一部分]

 * @param  [string]  $path     [文件要保存的目錄]

 * @param  array   $allwoExt [允許上傳的文件的后綴]

 * @param  integer $maxsize  [文件的大小的最大值]

 * @return [string]            [返回對(duì)應(yīng)的錯(cuò)誤信息]

 */

function uploadFile($fileInfo,$path,$allwoExt=array('gif','jpeg','jpg','png','txt'),$maxsize=10485760){

//判斷錯(cuò)誤符號(hào)

if($fileInfo['error']==UPLOAD_ERR_OK){//或?yàn)?

if(is_uploaded_file($fileInfo['tmp_name'])){

$ext=strtolower(pathInfo($fileInfo['name'],PATHINFO_EXTENSION));//獲取文件后綴

$uniqid=uniqid();

$destnation=$path.'/'.pathinfo($fileInfo['name'],PATHINFO_FILENAME).'_'.$uniqid.'.'.$ext;

if(in_array($ext,$allwoExt)){

if($fileInfo['size']<=$maxsize){

if(move_uploaded_file($fileInfo['tmp_name'], $destnation)){

$mes='文件上傳成功';

}else{

$mes='文件移動(dòng)失敗';

}

}else{

$mes='文件過大';

}

}else{

$mes='非法文件類型';

}

}else{

$mes='文件不是通過HTTP POST方式上傳過來的';

}

}else{

switch ($fileInfo['error']) {

case 1:

$mes='超過了配置文件的大小';

break;

case 2:

$mes='超過了表單允許接收數(shù)據(jù)的大小';

break;

case 3:

$mes='文件被部分上傳';

break;

case 4:

$mes='沒有文件被上傳';

break;

default:

$mes='出現(xiàn)未知錯(cuò)誤';

break;

}

}

return $mes;

}

?>


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI