php創(chuàng)建多級目錄完整封裝類操作方法
創(chuàng)建多級目錄函數(shù)中調(diào)用創(chuàng)建指定下的指定文件的函數(shù):
public function create_dir($dir,$mode=0777)
{
return is_dir($dir) or ($this->create_dir(dirname($dir)) and mkdir($dir, $mode));
}
創(chuàng)建指定路徑下的指定文件,string 需要包含文件名和后綴path(需要包含文件名和后綴),booleanover_write 是否覆蓋文件,int 設(shè)置時間。默認(rèn)是當(dāng)前系統(tǒng)時間time設(shè)置時間。默認(rèn)是當(dāng)前系統(tǒng)時間,intatime 設(shè)置訪問時間。默認(rèn)是當(dāng)前系統(tǒng)時間。函數(shù)如下中調(diào)用了create_dir創(chuàng)建目錄函數(shù)及刪除unlink_file函數(shù):
public function create_file($path,$over_write=FALSE,$time=NULL,$atime=NULL)
{
$path = $this->dir_replace($path);
$time = empty($time) ? time() : $time;
$atime = empty($atime) ? time() : $atime;
if(file_exists($path) && $over_write)
{
$this->unlink_file($path);
}
$aimDir = dirname($path);
$this->create_dir($aimDir);
return touch($path,$time,$atime);
}
刪除非空目錄函數(shù),說明:只能刪除非系統(tǒng)和特定權(quán)限的文件,否則會出現(xiàn)錯誤,string目錄路徑dirName目錄路徑,booleanis_all是否刪除所有,boolean $del_dir 是否刪除目錄,函數(shù)如下:
public function remove_dir($dir_path,$is_all=FALSE)
{
$dirName = $this->dir_replace($dir_path);
$handle = @opendir($dirName);
while (($file = @readdir($handle)) !== FALSE)
{
if($file != '.' && $file != '..')
{
$dir = $dirName . '/' . $file;
if($is_all)
{
is_dir($dir) ? $this->remove_dir($dir) : $this->unlink_file($dir);
}
else
{
if(is_file($dir))
{
$this->unlink_file($dir);
}
}
}
}
closedir($handle);
return @rmdir($dirName);
}
替換路徑中//的字符相應(yīng)的字符函數(shù):
public function dir_replace($path)
{
return str_replace('//','/',str_replace('\\','/',$path));
}
/**
* 指定文件編碼轉(zhuǎn)換
* @param string $path 文件路徑
* @param string $input_code 原始編碼
* @param string $out_code 輸出編碼
* @return boolean
*/
public function change_file_code($path,$input_code,$out_code)
{
if(is_file($path))//檢查文件是否存在,如果存在就執(zhí)行轉(zhuǎn)碼,返回真
{
$content = file_get_contents($path);
$content = string::chang_code($content,$input_code,$out_code);
$fp = fopen($path,'w');
return fputs($fp,$content) ? TRUE : FALSE;
fclose($fp);
}
}
/**
* 取得上傳文件信息
* @param $file file屬性信息
* @return array
*/
public function get_upload_file_info($file)
{
$file_info = $_FILES[$file];//取得上傳文件基本信息
$info = array();
$info['type'] = strtolower(trim(stripslashes(preg_replace("/^(.+?);.*$/", "\\1", $file_info['type'])), '"'));//取得文件類型
$info['temp'] = $file_info['tmp_name'];//取得上傳文件在服務(wù)器中臨時保存目錄
$info['size'] = $file_info['size'];//取得上傳文件大小
$info['error'] = $file_info['error'];//取得文件上傳錯誤
$info['name'] = $file_info['name'];//取得上傳文件名
$info['ext'] = $this->get_ext($file_info['name']);//取得上傳文件后綴
return $info;
}
/**
* 取得文件路徑信息
* @param $full_path 完整路徑
* @return ArrayObject
*/
public function get_file_type($path)
{
//pathinfo() 函數(shù)以數(shù)組的形式返回文件路徑的信息。
//---------$file_info = pathinfo($path); echo file_info['extension'];----------//
//extension取得文件后綴名【pathinfo($path,PATHINFO_EXTENSION)】-----dirname取得文件路徑【pathinfo($path,PATHINFO_DIRNAME)】-----basename取得文件完整文件名【pathinfo($path,PATHINFO_BASENAME)】-----filename取得文件名【pathinfo($path,PATHINFO_FILENAME)】
return pathinfo($path);
}
/**
* 返回指定文件和目錄的信息
* @param string $file
* @return ArrayObject
*/
public function list_info($file)
{
$dir = array();
$dir['filename'] = basename($file);//返回路徑中的文件名部分。
$dir['pathname'] = realpath($file);//返回絕對路徑名。
$dir['owner'] = fileowner($file);//文件的 user ID (所有者)。
$dir['perms'] = fileperms($file);//返回文件的 inode 編號。
$dir['inode'] = fileinode($file);//返回文件的 inode 編號。
$dir['group'] = filegroup($file);//返回文件的組 ID。
$dir['path'] = dirname($file);//返回路徑中的目錄名稱部分。
$dir['atime'] = fileatime($file);//返回文件的上次訪問時間。
$dir['ctime'] = filectime($file);//返回文件的上次改變時間。
$dir['perms'] = fileperms($file);//返回文件的權(quán)限。
$dir['size'] = filesize($file);//返回文件大小。
$dir['type'] = filetype($file);//返回文件類型。
$dir['ext'] = is_file($file) ? pathinfo($file,PATHINFO_EXTENSION) : '';//返回文件后綴名
$dir['mtime'] = filemtime($file);//返回文件的上次修改時間。
$dir['isDir'] = is_dir($file);//判斷指定的文件名是否是一個目錄。
$dir['isFile'] = is_file($file);//判斷指定文件是否為常規(guī)的文件。
$dir['isLink'] = is_link($file);//判斷指定的文件是否是連接。
$dir['isReadable'] = is_readable($file);//判斷文件是否可讀。
$dir['isWritable'] = is_writable($file);//判斷文件是否可寫。
$dir['isUpload'] = is_uploaded_file($file);//判斷文件是否是通過 HTTP POST 上傳的。
return $dir;
}
以上這篇php創(chuàng)建多級目錄完整封裝類操作方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
php實現(xiàn)當(dāng)前頁面點擊下載文件的簡單方法
下面小編就為大家?guī)硪黄猵hp實現(xiàn)當(dāng)前頁面點擊下載文件的簡單方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09
php函數(shù)mkdir實現(xiàn)遞歸創(chuàng)建層級目錄
當(dāng)我們想在自己的站點中添加多級目錄時,可以運用php函數(shù)mkdir()來實現(xiàn)這個功能。具有一定的參考價值,感興趣的小伙伴們可以參考一下。2016-10-10

