天天看點

自己寫的處理檔案的類,删除目錄,複制目錄,周遊目錄,擷取檔案屬性,點評一下啊

<?php

class FileFun

{

//周遊檔案夾,傳回檔案清單

function display_filelist($directory)

{

$handle=opendir($directory);

$dirlist=array();

$filelist=array();

while ($file = readdir($handle))

{

if($file<>"." and $file<>"..")

{

if(is_dir($file))

{

$dirlist[] = $file;

}

else

{

$filelist[] = $directory.DIRECTORY_SEPARATOR.$file;

}

}

}

closedir($handle);

return $filelist;

}

//去除多餘的路徑,隻傳回檔案名

function display_filename($filename)

{

$i=strrpos($filename,DIRECTORY_SEPARATOR);

$tmp=substr($filename,$i+1);

return $tmp;

}

//編碼轉換

function display_fileencoding($filename)

{

if(extension_loaded("mbsting"))

{

$code=mb_detect_encoding($filename);//檢測字元串編碼

$filename=mb_convert_encoding($filename,"UTF-8",$code);//将編碼$code轉換為utf-8編碼

return $filename;

}

else

die("請檢查系統是否正确安裝配置mbstring");

}

//擷取檔案權限屬性

function display_file($filename)

{

return $dirperm=substr(base_convert(fileperms($filename),10,8),-4);

}

//計算檔案大小

function display_size($file)

{

$file_size = filesize($file);

if($file_size >= 1073741824)

{

$file_size = round($file_size / 1073741824 * 100) / 100 . "Gb";

}

elseif($file_size >= 1048576)

{

$file_size = round($file_size / 1048576 * 100) / 100 . "Mb";

}

elseif($file_size >= 1024)

{

$file_size = round($file_size / 1024 * 100) / 100 . "Kb";

}

else{

$file_size = $file_size . "B";

}

return $file_size;

}

//擷取建立的時間

function display_ctime($file)

{

date_default_timezone_set("PRC");//設定預設時區為中國時區

$changeddate = date("Y-m-d H:i:s",filectime($file));

return $changeddate;

}

//最後修改時間

function display_mtime($filename)

{

date_default_timezone_set("PRC");//設定預設時區為中國時區

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

return $mtime;

}

//最近通路時間

function display_mtime($filename)

{

date_default_timezone_set("PRC");//設定預設時區為中國時區

return $mtime=date("Y-m-d H:i:s",fileatime($filename));

return $mtime;

}

//檢查檔案格式并顯示相應的圖表和屬性

function display_filetype($file)

{

$path="./images";

//檢查檔案格式并顯示相應的圖表和屬性

//圖檔檔案

if (eregi(".bmp|.jpg|.jpeg",$file))

{

$icon = "<IMG SRC="$path/image.gif" mce_SRC="$path/image.gif" alt=/"圖檔/" 0/">";

}

//PDF檔案

if (eregi(".pdf",$file))

{

$icon = "<IMG SRC="$path/PDFXP.ico" mce_SRC="$path/PDFXP.ico" alt=/"PDF檔案/" 0/">";

}

//文本檔案

elseif (eregi(".txt",$file))

{

$icon = "<IMG SRC="$path/TEXT.GIF" mce_SRC="$path/TEXT.GIF" alt=/"文本檔案/" 0/">";

}

//音頻檔案

elseif (eregi(".wav|.mp2|.mp3|.mp4|.vqf|.midi|.wmv",$file))

{

$icon = "<IMG SRC="$path/WMPDOCUMENT.ico" mce_SRC="$path/WMPDOCUMENT.ico" alt=/"Audio/" 0/">";

}

//PPT檔案

elseif (eregi(".ppt",$file))

{

$icon = "<IMG SRC="$path/PPT.ico" mce_SRC="$path/PPT.ico" alt=/"PPT/" 0/">";

}

//壓縮檔案

elseif (eregi(".rar|.tar.gz|.7z",$file))

{

$icon = "<IMG SRC="$path/RARICON.ico" mce_SRC="$path/RARICON.ico" alt=/"RAR/" 0/">";

}

//Web伺服器檔案

elseif (eregi(".phps|.php|.php2|.php3|.php4|.asp|.asa|.cgi|.pl|.shtml",$file))

{

$icon = "<IMG SRC="$path/PHP.ico" mce_SRC="$path/PHP.ico" alt=/"PHP/" 0/">";

}

//Apache Web伺服器安全設定

elseif (eregi(".htaccess",$file))

{

$icon = "<IMG SRC="$path/security.gif" mce_SRC="$path/security.gif" alt=/"Apache Webserver security settings/" 0/">" ;

}

//Web頁面檔案

elseif (eregi(".html|.htm",$file))

{

$icon = "<IMG SRC="$path/WEBPAGE.GIF" mce_SRC="$path/WEBPAGE.GIF" alt=/"網頁檔案/" 0/">";

}

//不确定格式檔案

else

{

$icon = "<IMG SRC="$path/DEFAULT.ico" mce_SRC="$path/DEFAULT.ico" alt=/"未知檔案類型/" 0/">";

}

return $icon;

}

//複制目錄

function copydir($dirFrom,$dirTo)

{

$filecounter=0;

$dircounter=0;

if(is_file($dirTo))//收先要判斷一下目标是不是檔案夾

{

die("無法建立目錄 $dirTo");

}

if(!file_exists($dirTo))//判斷目标檔案夾是否存在,不存在則建立

{

mkdir($dirTo);

$dircounter++;

}

$handle=@opendir($dirFrom);

while(($file=readdir($handle))!==false)

{

if($file<>"." and $file<>"..")//這個不能少

{

$fileFrom=$dirFrom.DIRECTORY_SEPARATOR.$file;//源檔案夾

$fileTo=$dirTo.DIRECTORY_SEPARATOR.$file;//目标檔案夾

if(is_dir($fileFrom))

{

copydir($fileFrom,$fileTo);//是目錄,繼續周遊

}

else

{

copy($fileFrom,$fileTo);//不是目錄就拷貝

$filecounter++;

}

}

}

closedir($handle);

}

//删除目錄 rmdir()

function deleteDir($pathName)

{

$handle=@opendir($pathName);

while(($file=readdir($handle))!==false)

{

if($file<>"." and $file<>"..")

{

$file=$pathName.DIRECTORY_SEPARATOR.$file;//一定要将删除的檔案所在的目錄指明,不然誤删

if(is_dir($file))

{

deleteDir($file);

}

else

{

if(unlink($file))

{

echo "檔案",$file."删除成功<br>";

}

else

{

echo "檔案",$file."删除失敗<br>";

}

}

}

}

closedir($handle);

//要在closedir()後删除,不然還在opendir使用着,删除肯定會出現問題的

if(rmdir($pathName))

{

echo "目錄<b>".$pathName."</b>删除成功<br>";

}

else

{

echo "目錄<b>".$pathName."</b>删除失敗<br>";

}

}

//删除檔案,并且備份删除的檔案

function delFile($filename)

{

@copy("../personalmanager/upload/".$filename,"../personalmanager/backupdel/".$filename);

@unlink("../personalmanager/upload/".$filename);

}

function fileUpload()

{//myfile的值不具有靈活性,應該修改成在上傳頁面利用事件給一個hidden型的變量指派,然後在這個裡面擷取這個值

$uploaddir="upload/";

for($i=0;$i<count($_FILES["myfile"]["name"]);$i++)

{

if($_FILES["myfile"]["size"][$i]>=40000)

{

echo $_FILES["myfile"]["name"][$i]."檔案太大<br>";

continue;

}

/*

if($_FILES["myfile"]["type"][$i]!="text/plain")

{

echo $_FILES["myfile"]["name"][$i]."檔案不是文本類型<br>";

continue;

}

if($_FILES["myfile"]["error"][$i]!=0)

{

echo $_FILES["myfile"]["name"][$i]."檔案不能上傳<br>";

continue;

}

*/

if(move_uploaded_file($_FILES["myfile"]["tmp_name"][$i],$uploaddir.$_FILES["myfile"]["name"][$i]))

{

echo "<mce:script language='javascript'><!--

alert('檔案上傳成功');

// --></mce:script>

";

}

}

}

}

?>