天天看點

php檔案夾分隔符,php檔案夾/檔案目錄操作函數

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.

有效标記為:

GLOB_MARK – 在每個傳回的項目中加一個斜線

GLOB_NOSORT – 按照檔案在目錄中出現的原始順序傳回(不排序)

GLOB_NOCHECK – 如果沒有檔案比對則傳回用于搜尋的模式

GLOB_NOESCAPE – 反斜線不轉義元字元

GLOB_BRACE – 擴充 {a,b,c} 來比對 ‘a’,’b’ 或 ‘c’

GLOB_ONLYDIR – 僅傳回與模式比對的目錄項

注:在 PHP 4.3.3 版本之前 GLOB_ONLYDIR 在 Windows 或者其它不使用 GNU C 庫的系統上不可用.

GLOB_ERR – 停止并讀取錯誤資訊(比如說不可讀的目錄),預設的情況下忽略所有錯誤

注:GLOB_ERR 是 PHP 5.1 添加的.

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是否存在.

$existResult = file_exists('../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 )  {

3、目錄下都會有兩個檔案,名字為'.'和‘..’,不要對他們進行操作

if($filename != "." && $filename != "..") {

4、進行處理,這裡簡單的用echo來輸出檔案名

echo $filename;}}

5、關閉目錄

closedir($handler);

對象是否是目錄,檢查上級目錄下的目标對象logo.jpg是否是目錄.

$checkResult = is_dir('../logo.jpg');//phpfensi.com

說明:如果目标對象是目錄系統傳回true,否則傳回false,上面例子的$checkResult當然是false.

對象是否是檔案,檢查上級目錄下的目标對象logo.jpg是否是檔案.

$checkResult = is_file('../logo.jpg');

說明:如果目标對象是檔案,系統傳回true,否則傳回false,上面例子的$checkResult當然是true.