php文件操作相關(guān)類實例
更新時間:2015年06月18日 15:10:15 作者:瘋狂的流浪
這篇文章主要介紹了php文件操作相關(guān)類,實例分析了php針對文件與目錄的創(chuàng)建、刪除、復(fù)制、檢查等操作技巧,需要的朋友可以參考下
本文實例講述了php文件操作相關(guān)類。分享給大家供大家參考。具體如下:
<?php
class file_dir
{
function check_exist($filename)
//檢查目錄或文件是否存在
{
if(file_exists($filename))
{
return true;
}
else return false;
}
function create_dir($dirname,$mode=0777)
// 一次只能創(chuàng)建一級目錄
{
if(is_null($dirname) || $dirname=="") return false;
if(!is_dir($dirname))
{
return mkdir($dirname,$mode);
}
}
function createDir($aimUrl) //可同時創(chuàng)建多級目錄
{
$aimUrl = str_replace('\\', '/', $aimUrl);
$aimDir = '';
$arr = explode('/', $aimUrl);
foreach ($arr as $str)
{
$aimDir .= $str . '/';
if (!file_exists($aimDir))
{
mkdir($aimDir);
}
}
}
function delete_dir($dirname) //刪除目錄
{
if($this->check_exist($dirname) and is_dir($dirname))
{
if(!$dirhandle=opendir($dirname)) return false;
while(($file=readdir($dirhandle))!==false)
{
if($file=="." or $file=="..") continue;
$file=$dirname.DIRECTORY_SEPARATOR.$file;
//表示$file是$dir的子目錄
if(is_dir($file))
{
$this->delete_dir($file);
}
else
{
unlink($file);
}
}
closedir($dirhandle);
return rmdir($dirname);
}
else return false;
}
function copy_dir($dirfrom,$dirto) //復(fù)制目錄
{
if(!is_dir($dirfrom)) return false;
if(!is_dir($dirto)) mkdir($dirto);
$dirhandle=opendir($dirfrom);
if($dirhandle)
{
while(false!==($file=readdir($dirhandle)))
{
if($file=="." or $file=="..") continue;
$filefrom=$dirfrom.DIRECTORY_SEPARATOR.$file;
//表示$file是$dir的子目錄
$fileto=$dirto.DIRECTORY_SEPARATOR.$file;
if(is_dir($filefrom))
{
$this->copy_dir($filefrom,$fileto);
}
else
{ if(!file_exists($fileto))
copy($filefrom,$fileto);
}
}
}
closedir($dirhandle);
}
function getdir_size($dirname) //獲取目錄大小
{
if(!file_exists($dirname) or !is_dir($dirname)) return false;
if(!$handle=opendir($dirname)) return false;
$size=0;
while(false!==($file=readdir($handle)))
{
if($file=="." or $file=="..") continue;
$file=$dirname."/".$file;
if(is_dir($file))
{
$size+=$this->getdir_size($file);
}
else
{
$size+=filesize($file);
}
}
closedir($handle);
return $size;
}
function getReal_size($size) // 單位自動轉(zhuǎn)換函數(shù)
{
$kb=1024;
$mb=$kb*1024;
$gb=$mb*1024;
$tb=$gb*1024;
if($size<$kb) return $size."B";
if($size>=$kb and $size<$mb) return round($size/$kb,2)."KB";
if($size>=$mb and $size<$gb) return round($size/$mb,2)."MB";
if($size>=$gb and $size<$tb) return round($size/$gb,2)."GB";
if($size>=$tb) return round($size/$tb,2)."TB";
}
function copy_file($srcfile,$dstfile)
{
if(is_file($srcfile))
{
if(!file_exists($dstfile))
return copy($srcfile,$dstfile);
}
else return false;
}
function unlink_file($filename) //刪除文件
{
if($this->check_exist($filename) and is_file($filename))
{
return unlink($filename);
}
else return false;
}
function getsuffix($filename)
//獲取文件名后綴
{
if(file_exists($filename) and is_file($filename))
{
return end(explode(".",$filename));
}
}
function input_content($filename,$str)
//將字符串寫入文件
{
if(function_exists(file_put_contents))
{
file_put_contents($filename,$str);
}
else
{
$fp=fopen($filename,"wb");
fwrite($fp,$str);
fclose($fp);
}
}
function output_content($filename)
//將整個文件內(nèi)容讀出到一個字符串中
{
if(function_exists(file_get_contents))
{
return file_get_contents($filename);
}
else
{
$fp=fopen($filename,"rb");
$str=fread($fp,filesize($filename));
fclose($fp);
return $str;
}
}
function output_to_array($filename)
//將文件內(nèi)容讀出到一個數(shù)組中
{
$file=file($filename);
$arr=array();
foreach($file as $value)
{
$arr[]=trim($value);
}
return $arr;
}
}
//$dir=new file_dir;
//$size=$dir->getdir_size("F:/wamp/www/class/images");
//echo $dir->getReal_size($size);
?>
希望本文所述對大家的php程序設(shè)計有所幫助。
相關(guān)文章
PHP生成不同顏色、不同大小的tag標(biāo)簽函數(shù)
看別人網(wǎng)站上面的tag都是不同顏色,不同大小的tag標(biāo)簽非常不錯,這里就分享兩個函數(shù),方便需要的朋友2013-09-09
php 來訪國內(nèi)外IP判斷代碼并實現(xiàn)頁面跳轉(zhuǎn)
最近做了公司網(wǎng)站的一個需求:按來訪人的IP來判斷他是進中文網(wǎng)站還是英文網(wǎng)站。2009-12-12
PHP5.3連接Oracle客戶端及PDO_OCI模塊的安裝方法
這篇文章主要介紹了PHP5.3連接Oracle客戶端及PDO_OCI模塊的安裝方法,結(jié)合實例形式詳細分析了php5.3環(huán)境下PDO_OCI模塊的安裝方法,并給出了連接Oracle測試程序,需要的朋友可以參考下2016-05-05
php實現(xiàn)無限級分類實現(xiàn)代碼(遞歸方法)
近期做的一個網(wǎng)站需要一個無限級下拉列表的無限級分級功能,于是就有了下面的作品。2011-01-01
深入解析PHP 5.3.x 的strtotime() 時區(qū)設(shè)定 警告信息修復(fù)
在某些參考資料中是說這兩個方法任選其一就可,但經(jīng)我測試,必須兩個方法同時使用,才不會再出現(xiàn)錯誤提示2013-08-08

