php創(chuàng)建多級(jí)目錄完整封裝類操作方法
創(chuàng)建多級(jí)目錄函數(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è)置時(shí)間。默認(rèn)是當(dāng)前系統(tǒng)時(shí)間time設(shè)置時(shí)間。默認(rèn)是當(dāng)前系統(tǒng)時(shí)間,intatime 設(shè)置訪問(wèn)時(shí)間。默認(rèn)是當(dāng)前系統(tǒng)時(shí)間。函數(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ù),說(shuō)明:只能刪除非系統(tǒng)和特定權(quán)限的文件,否則會(huì)出現(xiàn)錯(cuò)誤,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ù)器中臨時(shí)保存目錄 $info['size'] = $file_info['size'];//取得上傳文件大小 $info['error'] = $file_info['error'];//取得文件上傳錯(cuò)誤 $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);//返回絕對(duì)路徑名。 $dir['owner'] = fileowner($file);//文件的 user ID (所有者)。 $dir['perms'] = fileperms($file);//返回文件的 inode 編號(hào)。 $dir['inode'] = fileinode($file);//返回文件的 inode 編號(hào)。 $dir['group'] = filegroup($file);//返回文件的組 ID。 $dir['path'] = dirname($file);//返回路徑中的目錄名稱部分。 $dir['atime'] = fileatime($file);//返回文件的上次訪問(wèn)時(shí)間。 $dir['ctime'] = filectime($file);//返回文件的上次改變時(shí)間。 $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);//返回文件的上次修改時(shí)間。 $dir['isDir'] = is_dir($file);//判斷指定的文件名是否是一個(gè)目錄。 $dir['isFile'] = is_file($file);//判斷指定文件是否為常規(guī)的文件。 $dir['isLink'] = is_link($file);//判斷指定的文件是否是連接。 $dir['isReadable'] = is_readable($file);//判斷文件是否可讀。 $dir['isWritable'] = is_writable($file);//判斷文件是否可寫(xiě)。 $dir['isUpload'] = is_uploaded_file($file);//判斷文件是否是通過(guò) HTTP POST 上傳的。 return $dir; }
以上這篇php創(chuàng)建多級(jí)目錄完整封裝類操作方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- PHP創(chuàng)建多級(jí)目錄的兩種方法
- PHP遞歸創(chuàng)建多級(jí)目錄
- php創(chuàng)建多級(jí)目錄的方法
- PHP使用mkdir創(chuàng)建多級(jí)目錄的方法
- php刪除一個(gè)路徑下的所有文件夾和文件的方法
- PHP刪除目錄及目錄下所有文件的方法詳解
- PHP 刪除文件與文件夾操作 unlink()與rmdir()這兩個(gè)函數(shù)的使用
- PHP創(chuàng)建/刪除/復(fù)制文件夾、文件
- PHP刪除指定目錄中的所有目錄及文件的方法
- php刪除文件夾及其文件夾下所有文件的函數(shù)代碼
- php創(chuàng)建多級(jí)目錄與級(jí)聯(lián)刪除文件的方法示例
相關(guān)文章
laravel 之 Eloquent 模型修改器和序列化示例
今天小編就為大家分享一篇laravel 之 Eloquent 模型修改器和序列化示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10使用pthreads實(shí)現(xiàn)真正的PHP多線程(需PHP5.3以上版本)
PHP 5.3 以上版本,使用pthreads PHP擴(kuò)展,可以使PHP真正地支持多線程。多線程在處理重復(fù)性的循環(huán)任務(wù),能夠大大縮短程序執(zhí)行時(shí)間2014-05-05php對(duì)數(shù)字進(jìn)行萬(wàn)、億單位的轉(zhuǎn)化
在本篇文章里小編給大家整理了一篇關(guān)于php對(duì)數(shù)字進(jìn)行萬(wàn)、億單位的轉(zhuǎn)化,有需要的朋友們可以跟著學(xué)習(xí)下。2021-08-08Laravel6.2中用于用戶登錄的新密碼確認(rèn)流程詳解
這篇文章主要介紹了Laravel6.2中用于用戶登錄的新密碼確認(rèn)流程詳解,該功能使你可以要求已登錄的用戶重新輸入密碼,然后才能訪問(wèn)路由2019-10-10對(duì)laravel的session獲取與存取方法詳解
今天小編就為大家分享一篇對(duì)laravel的session獲取與存取方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10thinkPHP中create方法與令牌驗(yàn)證實(shí)例淺析
這篇文章主要介紹了thinkPHP中create方法與令牌驗(yàn)證,以一個(gè)簡(jiǎn)單實(shí)例形式分析了thinkPHP中create方法與令牌驗(yàn)證增加表單安全性的相關(guān)技巧,代碼備有詳盡注釋說(shuō)明,需要的朋友可以參考下2015-12-12