英泰移動通信教育

7x24小時咨詢熱線

400-660-3310

當前位置 : 好學校 英泰移動通信教育 學習資訊 資訊詳情

PHP常用的文件操作函數(shù)

2021-10-23

以下是個人總結(jié)的PHP文件操作函數(shù)。當然,這只是部分,還有很多,我沒有列出來。

PHP文件操作函數(shù)

一、解析路徑:

1.獲得文件名:

basename();

給出一個包含有指向一個文件的全路徑的字符串,本函數(shù)返回基本的文件名。如果文件名是以suffix結(jié)束的,那這一部分也會被去掉。

eg:

$path="/home/httpd/html/index.php";

$file=basename($path,".php");//$fileissetto"index"

2.得到目錄部分:

dirname();

給出一個包含有指向一個文件的全路徑的字符串,本函數(shù)返回去掉文件名后的目

錄名。

eg:

$path="/etc/passwd";

$file=dirname($path);//$fileissetto"/etc"

3.得到路徑關(guān)聯(lián)數(shù)組

pathinfo();

得到一個指定路徑中的三個部分:目錄名,基本名,擴展名。

eg:

$pathinfo=pathinfo("www/test/index.html");

var_dump($pathinfo);

//$path['dirname']

$path['basename']

$path['extenssion']

二、文件類型

1.filetype();

返回文件的類型。可能的值有fifo,char,dir,block,link,file和unknown。

eg:

echofiletype('/etc/passwd');//file

echofiletype('/etc/');//dir

三、得到給定文件有用信息數(shù)組(很有用)

1.fstat();

通過已打開的文件指針取得文件信息

獲取由文件指針handle所打開文件的統(tǒng)計信息。本函數(shù)和stat()函數(shù)相似,

除了它是作用于已打開的文件指針而不是文件名。

eg:

//打開文件

$fp=fopen("/etc/passwd","r");

//取得統(tǒng)計信息

$fstat=fstat($fp);

//關(guān)閉文件

fclose($fp);

//只顯示關(guān)聯(lián)數(shù)組部分

print_r(array_slice($fstat,13));

2.stat()

獲取由filename指定的文件的統(tǒng)計信息(類比fstat())

四、計算大小

1.filesize()

返回文件大小的字節(jié)數(shù),如果出錯返回FALSE并生成一條E_WARNING級的錯

誤。

eg:

//輸出類似:somefile.txt:1024bytes

$filename='somefile.txt';

echo$filename.':'.filesize($filename).'bytes';

2.disk_free_space()

獲得目錄所在磁盤分區(qū)的可用空間(字節(jié)單位)

eg

//$df包含根目錄下可用的字節(jié)數(shù)

$df=disk_free_space("/");

//在Windows下:

disk_free_space("C:");

disk_free_space("D:");

3.disk_total_space()

返回一個目錄的磁盤總大小

eg:(同上,換掉函數(shù))

另:如需要計算一個目錄大小,可以編寫一個遞歸函數(shù)來實現(xiàn)

php編程語言

五、訪問與修改時間

1.fileatime():醉后訪問時間

2.filectime():醉后改變時間(任何數(shù)據(jù)的修改)

3.filemtime():醉后修改時間(指僅是內(nèi)容修改)

六、文件的I/O操作

1.fopen--打開文件或者URL

mode說明

'r'只讀方式打開,將文件指針指向文件頭。

'r+'讀寫方式打開,將文件指針指向文件頭。

'w'寫入方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存

在則嘗試創(chuàng)建之。

'w+'讀寫方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不

存在則嘗試創(chuàng)建之。

'a'寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建之。

'a+'讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建之。

'x'創(chuàng)建并以寫入方式打開,將文件指針指向文件頭。如果文件已存在,則

fopen()調(diào)用失敗并返回FALSE,

'x+'創(chuàng)建并以讀寫方式打開,將文件指針指向文件頭。如果文件已存在,則

fopen()調(diào)用失敗并返回FALSE

$handle=fopen("/home/rasmus/file.txt","r");

2.file--把整個文件讀入一個數(shù)組中(此函數(shù)是很有用的)

和file_get_contents()一樣,只除了file()將文件作為一個數(shù)組返回。數(shù)

組中的每個單元都是文件中相應的一行,包括換行符在內(nèi)。如果失敗file()返

回FALSE。

//另一個例子將web頁面讀入字符串。參見file_get_contents()。

$html=implode('',file('http://www.example.com/'));

3.fgets--從文件指針中讀取一行

從handle指向的文件中讀取一行并返回長度最多為length-1字節(jié)的字符

串。碰到換行符(包括在返回值中)、EOF或者已經(jīng)讀取了length-1字節(jié)后

停止(看先碰到那一種情況)。如果沒有指定length,則默認為1K,或者說1024

字節(jié)。

4.fgetss--從文件指針中讀取一行并過濾掉HTML標記

和fgets()相同,只除了fgetss嘗試從讀取的文本中去掉任何HTML和PHP

標記。

可以用可選的第三個參數(shù)指定哪些標記不被去掉

另:對的目錄的操作:

1.opendir--打開目錄句柄,打開一個目錄句柄,可用于之后的closedir(),

readdir()和rewinddir()調(diào)用中。

2.readdir--從目錄句柄中讀取條目,返回目錄中下一個文件的文件名。文件

名以在文件系統(tǒng)中的排序返回。

3.scandir--列出指定路徑中的文件和目錄(很有用),返回一個array,包含

有directory中的文件和目錄。

默認的排序順序是按字母升序排列。如果使用了可選參數(shù)sorting_order(設(shè)為

1),則排序順序是按字母降序排列。

eg:

$dir='/tmp';

$files1=scandir($dir);

$files2=scandir($dir,1);

print_r($files1);

print_r($files2);

另外注:

七、對文件屬性的操作(操作系統(tǒng)環(huán)境不同,可能有所不一樣,這點要注意)

1.文件是否可讀:

boolis_readable(stringfilename)

如果由filename指定的文件或目錄存在并且可讀則返回TRUE。

記住PHP也許只能以運行webserver的用戶名(通常為'nobody')來訪

問文件。不計入安全模式的限制。

2.文件是否可寫

boolis_writable(stringfilename)

如果文件存在并且可寫則返回TRUE。filename參數(shù)可以是一個允許進行是

否可寫檢查的目錄名。

記住PHP也許只能以運行webserver的用戶名(通常為'nobody')來訪問

文件。不計入安全模式的限制

3.檢查文件是否存在

boolfile_exists(stringfilename)

如果由filename指定的文件或目錄存在則返回TRUE,否則返回FALSE

收藏
分享到:

相關(guān)課程

相關(guān)資訊

英泰移動通信教育

英泰移動通信教育

認證等級

信譽良好,可安心報讀

英泰移動通信教育

已獲好學校V2信譽等級認證

信譽值

  • (60-80)基礎(chǔ)信譽積累,可放心報讀
  • (81-90)良好信譽積累,可持續(xù)信賴
  • (91-100)充分信譽積累,推薦報讀

與好學校簽訂讀書保障協(xié)議:

  • 100%
  • 54
  • 3251
在線咨詢
;