php 資料夾 與 檔案目錄操作

2022-08-18 09:24:12 字數 4533 閱讀 3756

php資料夾操作函式

string basename ( string path [, string suffix] )

給出乙個包含有指向乙個檔案的全路徑的字串,本函式返回基本的檔名。如果檔名是以 suffix 結束的,那這一部分也會被去掉。

在 windows 中,斜線(/)和反斜線()都可以用作目錄分隔符。在其它環境下是斜線(/)。

string dirname ( string path )

給出乙個包含有指向乙個檔案的全路徑的字串,本函式返回去掉檔名後的目錄名。

在 windows 中,斜線(/)和反斜線()都可以用作目錄分隔符。在其它環境下是斜線(/)。

array pathinfo ( string path [, int options] )

pathinfo() 返回乙個聯合陣列包含有 path 的資訊。包括以下的陣列單元:dirname,basename 和 extension。

可以通過引數 options 指定要返回哪些單元。它們包括:pathinfo_dirname,pathinfo_basename 和 pathinfo_extension。預設是返回全部的單元。

string realpath ( string path )

realpath() 擴充套件所有的符號連線並且處理輸入的 path 中的 『/./', 『/../' 以及多餘的 『/' 並返回規範化後的絕對路徑名。返回的路徑中沒有符號連線,'/./' 或 『/../' 成分。

realpath() 失敗時返回 false,比如說檔案不存在的話。在 bsd 系統上,如果僅僅是 path 不存在的話,php 並不會像其它系統那樣返回 false。

bool is_dir ( string filename )

如果檔名存在並且為目錄則返回 true。如果 filename 是乙個相對路徑,則按照當前工作目錄檢查其相對路徑。

注: 本函式的結果會被快取。更多資訊參見 clearstatcache()。

resource opendir ( string path [, resource context] )

開啟乙個目錄控制代碼,可用於之後的 closedir(),readdir() 和 rewinddir() 呼叫中。

string readdir ( resource dir_handle )

返回目錄中下乙個檔案的檔名。檔名以在檔案系統中的排序返回。

void closedir ( resource dir_handle )

關閉由 dir_handle 指定的目錄流。流必須之前被 opendir() 所開啟。

void rewinddir ( resource dir_handle )

將 dir_handle 指定的目錄流重置到目錄的開頭。

array glob ( string pattern [, int flags] )

glob() 函式依照 libc glob() 函式使用的規則尋找所有與 pattern 匹配的檔案路徑,類似於一般 shells 所用的規則一樣。不進行縮寫擴充套件或引數替代。

返回乙個包含有匹配檔案/目錄的陣列。如果出錯返回 false。

php檔案目錄操作

新建檔案

1、先確定要寫入檔案的內容

$content = '你好';

2、開啟這個檔案(系統會自動建立這個空檔案)

//假設新建的檔案叫file.txt,而且在上級目錄下。w表示『寫檔案',$fp下面要用到,表示指向某個開啟的檔案。

$fp = fopen('../file.txt', 'w');

3、將內容字串寫入檔案

//$fp告訴系統要寫入的檔案,寫入的內容是$content

fwrite($fp, $content);

4、關閉檔案

fclose($fp);

說明:php5中提供了更方便的函式file_put_contents,上面的4步可以這樣完成:

$content = '你好';

file_put_contents('file.txt',$content);

刪除檔案

//刪除當前目錄下的arch目錄下的檔案abc.txt

unlink('arch/abc.txt');

說明:系統會返回操作結果,成功則返回 true,失敗則返回 false,可以用變數接收,就知道是否刪除成功:

$deleteresult = unlink('arch/abc.txt');

獲取檔案內容

//假設獲取的目標檔名是file.txt,而且在上級目錄下。獲取的內容放入$content。

$content = file_get_contents('../file.txt');

修改檔案內容

操作方法與新建內容基本一樣

重新命名檔案或目錄

//將當前目錄下的子目錄a下面的檔案1.gif重新命名為2.gif。

rename('/a/1.gif', '/a/2.gif');

說明:對目錄也一樣。系統會返回操作結果,成功則返回 true,失敗則返回 false,可以用變數接收,就知道是否重新命名成功。

$renameresult = rename('/a/1.gif', '/a/2.gif');

如果要移動檔案或目錄,只要將重新命名後的路徑設定為新的路徑就可以了:

//將當前目錄下的子目錄a下面的檔案1.gif,移動到當前目錄下的子目錄b,並且重新命名為2.gif。

rename('/a/1.gif', '/b/2.gif');

不過要注意,如果目錄b不存在,就會移動失敗。

複製檔案

//將當前目錄下的子目錄a下面的檔案1.gif,複製到當前目錄下的子目錄b,並命名為2.gif。

copy('/a/1.gif', '/b/1.gif');

說明:不能對目錄進行此項操作。

如果目標檔案(上面的/b/1.gif)已經存在,原來的檔案將被覆蓋。

系統會返回操作結果,成功則返回 true,失敗則返回 false,可以用變數接收,就知道是否複製成功。

$copyresult = copy('/a/1.gif', '/b/1.gif');

移動檔案或目錄

操作方法和重新命名一樣

檔案或目錄是否存在

//檢查上級目錄下的檔案logo.jpg是否存在。

說明:如果檔案存在系統返回true,否則返回false。可以對目錄進行同樣的操作。

獲取檔案大小

//獲取上級目錄下的檔案logo.png的大小。

$size = filesize('../logo.png');

說明:系統會返回乙個數字,表示檔案的大小是多少位元組(bytes)。

新建目錄

//在當前目錄下的目錄a下面新建目錄b。

mkdir('/a/b');

說明:系統會返回操作結果,成功則返回 true,失敗則返回 false,可以用變數接收,就知道是否新建成功:

$mkresult = mkdir('/a/b');

刪除目錄

//刪除當前目錄下的目錄a下面的子目錄b。

rmdir('/a/b');

說明:只能刪除非空的目錄,否則必須先刪除目錄下的子目錄和檔案,再刪除總目錄

系統會返回操作結果,成功則返回 true,失敗則返回 false,可以用變數接收,就知道是否刪除成功:

$deleteresult = rmdir('/a/b');

獲取目錄中的所有檔名

1、先開啟要操作的目錄,並用乙個變數指向它

//開啟當前目錄下的目錄pic下的子目錄common。

$handler = opendir('pic/common');

2、迴圈的讀取目錄下的所有檔案

/*其中$filename

= readdir($handler)是每次迴圈的時候將讀取的檔名賦值給$filename,為了不陷於死迴圈,所以還要讓$filename

!== false。一定要用!==,因為如果某個檔名如果叫'0',或者某些被系統認為是代表false,用!=就會停止迴圈*/

while( ($filename = readdir($handler)) !== false ) 

}5、關閉目錄

closedir($handler);

物件是否是目錄

//檢查上級目錄下的目標物件logo.jpg是否是目錄。

說明:如果目標物件是目錄系統返回true,否則返回false。上面例子的$checkresult當然是false。

物件是否是檔案

//檢查上級目錄下的目標物件logo.jpg是否是檔案。

說明:如果目標物件是檔案,系統返回true,否則返回false。上面例子的$checkresult當然是true。

php資料夾操作

本文講述了使用php如何操作資料夾,主要是一些函式的使用,非常基礎。0x01 建立資料夾 mkdir 0x02 刪除資料夾 rmdir 0x03 重新命名資料夾 rename 0x04 判斷是否是資料夾 is dir 0x05 開啟 讀取 關閉資料夾 opendir readdir closedir...

php根據檔案目錄獲取資料夾目錄

檔案目錄資料 filedirdate array 0 c ggg aaa bbb ccc ddd.php 1 c ggg aaa ccc ddd fff.php 2 c ggg aaa ddd fff eee.lib 迴圈處理資料 foreach filedirdate as key value f...

PHP建立檔案(夾)以及目錄操作

一 目錄操作 首先是從目錄讀取的函式,opendir readdir closedir 使用的時候是先開啟檔案控制代碼,而後迭代列出 base dir filelist fso opendir base dir echo base dir.while flist readdir fso closed...