PHP目錄操作和檔案操作

2021-10-03 12:31:09 字數 4600 閱讀 3626

php 操作目錄

1,目錄操作概述

2,建立新目錄 mkdir()

新建乙個由pathname指定的目錄,建立成功方式ture,否則為false

bool mkdir(string $pathname,[int $mode=0777,[bool $recursive=false]])

$pathname:指定目錄的路徑

$mode:預設mode是0777,意味著最大可能的訪問權,$mode在windows下被忽略,$mode的值為八進位制

$recursive:如果指定的路徑的上級目錄不存在,則也會遞迴建立

$dirname = "./static";

mkdir($dirname,0777,true);

3,判斷是否是乙個目錄is_dir()

判斷給定檔名是否是乙個目錄

bool is_dir(string $filename);

如果檔名存在且是個目錄,返回true,否則返回false

4,判斷目錄或檔案是否存在file_exists()

bool file_exists(string $filename)

可以判斷檔案和目錄是否存在,是則返回true,否則返回false

5,刪除目錄rmdir()

刪除目錄:該目錄必須是空的,否則會報錯

rmdir($dirname);

6,更改目錄的訪問許可權chmod()

改變檔案的訪問許可權

bool chmod(string $filename,int $mode)

$filename:指定檔案的路徑

$mode:mode引數包含三個八進位制數按順序分別指定所有者,所有者所在的組

以及所有人的訪問限制。每一部分都可以通過加入所需的許可權

來計算出所要的許可權

數字1:檔案可執行

數字2:檔案可寫

數字4:檔案可讀

檔案唯讀許可權:0444

資料夾唯讀許可權:0555

7,取得目錄或檔案訪問許可權fileperms()

int fileperms(string $filename)

以十進位制陣列返回檔案的訪問許可權

8,重新命名或移動檔案或目錄rename()

重新命名或移動乙個檔案或目錄,如果檔案不存在同一目錄下就是移動

bool rename(string $filename,string $newname)

9,開啟目錄 opendir()

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

resource opendir(string $path)

如果成功則返回目錄控制代碼的resource,失敗則返回false

$handle = opendir($dirname);

10,讀取目錄中條目readdir()

從目錄控制代碼中讀取條目

string readdir([resource $dir_handle])

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

11,顯示中文目錄或檔案iconv()

字串按要求的字元編碼來轉換

string iconv(string $in_charset,string $out_charset,string $str)

$in_charset:輸入的字符集

$out_charset:輸出的字符集

$str:要轉換的字串

返回:返回轉換後的字串,或者在失敗是返回false

12,關閉目錄控制代碼 closedir()

關閉由dir_handle指定的目錄流,流必須之間被opendir()鎖開啟

void closedir([resource $dir_handle)

節省伺服器資源

綜合例項:遞迴遍歷phpmyadmin下的所有條目

1,遞迴思想

把乙個相對複雜的問題轉化為乙個與原問題相似的規模較小的問題來解決

2,遞迴實現的條件

確定遞迴公式

確定遞迴邊界條件(遞迴出口),否則會出現死迴圈

php操作檔案

1,開啟檔案 fopen()

開啟檔案或url

resource fopen(string $filename,string $mode)

$filename:要開啟的檔案

$mode:開啟的方式

返回值,成功時返回檔案指標資源,如果開啟失敗,本函式返回false

2,開啟檔案的方式

mode 說明

'r' 唯讀,將檔案指向檔案頭

'r+' 讀寫方式開啟

'w' 寫入方式開啟,將檔案指標指向檔案頭並將檔案大小截為零,若不存在,則建立

'w+' 讀寫入方式開啟,將檔案指標指向檔案頭並將檔案大小截為零,若不存在,則建立

'a' 寫入,檔案指標指向檔案末尾,若不存在,則建立

'a+' 讀寫方式開啟,檔案指標指向檔案末尾,若不存在,則建立

'x' 只寫,並建立檔案,若檔案已存在,則fopen()呼叫失敗並返回false

'x+' 讀寫,並建立檔案,若檔案已存在,則fopen()呼叫失敗並返回false

3,關閉檔案 fclose()

4,讀取指定大小檔案內容fread()

讀取檔案(可安全用於二進位制檔案)

string fread(resource $handle,int $length);

$handle:由fopen() 建立的handle,$length最多讀取的位元組數

fopen() 函式的mode引數要加上'b'

返回值:返回讀取的字串,或者在失敗時返回false

5,讀取一行內容 fgets()

從檔案指標中讀取一行

string fgets(resource $handle,int $length)

$handle:檔案指標必須有效

$length:從handle指向的檔案中讀取一行並返回長度最多為length-1位元組的字串

碰到換行符(包括在返回值中),eof或讀完定製

若無指定長度,讀取1k,1024位元組

6,讀取檔案內容到陣列匯中file()

把整個檔案讀入乙個陣列中

array file(string $filename,[int $flags=0])

$filename:檔案路徑

$flags:附加選項

file_use_include_path(1):在include_path中查詢檔案

file_ignore_new_line(2):在陣列的每個元素末尾不新增換行符

file_skip_empty_lines(4):跳過空行

注意:不需要開啟和關閉檔案

7,讀取檔案內容到字串中file_get_contents()

建整個檔案讀入乙個字串

string file_get_contents(stirng $filename)

返回值:返回讀取的資料,失敗時返回false

8,例項:讀取記事本中的內容,並用**展示出來

9,寫入檔案

int fwrite(resource $handle,string $string);

返回:返回寫入的字元數,出現錯誤時側返回false

10,將乙個字串寫入檔案

和依次呼叫fopen(),fwrite()及fclose()功能一樣

int file_put_contents(string $filename,mixed $data,[int $flags=0])

引數:$filename 要被寫入資料的檔名

$data 要寫入的資料,型別可以使string,array(一維陣列)

$flags 附加選項

file_use_include_path(1) 在include目錄裡搜尋filename

lock_ex(2)在寫入時獲得乙個獨佔額

11,拷貝檔案

將檔案從source拷貝到dest

bool copy(string $source,string $dest)

如果目標檔案存在,則會覆蓋

12,刪除檔案

bool unlink(string $filename)

可以刪除虛擬空間之外的檔案,但必須使用相對路徑,必須有許可權

刪除的檔案不會進入**站

13,其他檔案操作函式

filesize() 可以獲取檔案大小,單位為位元組

is_writable() 判斷檔案是否可寫

is_readable() 判斷檔案是否可讀

feof() 判斷檔案指標是否到達檔案結尾

filectime() 獲取建立檔案的時間

fileatime() 獲取檔案最新訪問時間

filemtime() 獲取檔案最後修改時間

PHP的目錄操作和檔案操作

一 引論 在任何計算機裝置中,檔案是都是必須的物件,而在web程式設計中,檔案的操作一直是web程式設計師的頭疼的地方,而,檔案的操作在cms系統中這是必須的,非常有用的,我們經常遇到生成檔案目錄,檔案 夾 編輯等操作,現在我把php中的這些函式做一詳細總結並例項示範如何使用.關於對應的函式詳細介紹...

php 目錄 路徑和檔案 操作

目錄操作 解析路徑 basename 返回路徑的檔名部分 獲取目錄部分 dirname 返回路徑的目錄部分 路徑資訊 pathinfo 返回陣列 目錄名,基本名,副檔名 獲取絕對路徑 realpath 返回絕對路徑或 硬鏈結 絕對路徑 很重要 文字開啟 資料庫連線 磁碟 目錄 檔案大小 檔案大小 f...

Python 檔案操作 和 目錄操作

我們知道,檔名 目錄名和鏈結名都是用乙個字串作為其識別符號的,但是給我們乙個識別符號,我們該如何確定它所指的到底是常規檔案檔名 目錄名還是鏈結名呢?這時,我們可以使用os.path模組提供的isfile函式 isdir函式和islink函式來達成我們的目標,如下所示 print myfile,是乙個...