php檔案夾與檔案目錄操作函數介紹_PHP教程

來源:互聯網
上載者:User
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');
說明:如果目標對象是目錄系統返回true,否則返回false。上面例子的$checkResult當然是false。

對象是否是檔案
//檢查上級目錄下的目標對象logo.jpg是否是檔案。
$checkResult = is_file('../logo.jpg');
說明:如果目標對象是檔案,系統返回true,否則返回false。上面例子的$checkResult當然是true。

http://www.bkjia.com/PHPjc/313640.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/313640.htmlTechArticlephp檔案夾操作函數 string basename ( string path [, string suffix] ) 給出一個包含有指向一個檔案的全路徑的字串,本函數返回基本的檔案名稱。如果...

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.