檔案操作函式

2021-07-10 12:47:23 字數 2479 閱讀 9080

1、

檔案測試函式 2、

檔案操作

新建檔案:

fopen($filename,"w"); 

//以"寫"的方式開啟乙個不存在的檔案,就會新建該檔案

檔案刪除:

unlink();

檔案複製:

copy($filename,"aaa/bb.txt");

盡量使用/和相對路徑,因為linux只認/,也沒有磁碟分割槽,而windows/和\都認

重新命名檔案:

rename($filename,"bb.txt");

檔案移動(無專門移動函式,需先複製再刪除原檔案):

copy($filename,"aaa/bb.txt);

unlink($filename);

開啟檔案:

fopen($filename,"開啟模式"); //返回乙個資源;

開啟模式:

r:唯讀方式開啟,將檔案指標指向檔案頭;

r+:讀寫方式開啟,將檔案指標指向檔案頭;

寫:先寫後讀會覆蓋內容(原:123456+abc=abc456),先讀(指標已到最後)後寫內容會接上以前的內容

讀:r+模式寫完後指標指標最後,此時用fread()讀不到任何內容,只有通過移動指標rewind($fs)將指標移動到開頭,才能讀取全部內容

w:寫入方式開啟,將檔案指標指向檔案頭並將檔案大小截為零(清空原有內容),如果檔案不存在則嘗試建立之;

w+:讀寫方式開啟,將檔案指標指向檔案頭並將檔案大小截為零(清空原有內容),如果檔案不存在則建立檔案;

a:寫入方式(不能讀)開啟,將檔案指標指向檔案結尾(試驗結果:ftell()返回為0),如果檔案不存在則建立檔案;

無法通過rewind()把內容寫到前面,即只能在最後新增內容而不能修改任何內容

a+:讀寫方式開啟,將檔案指標指向檔案結尾

(試驗結果:ftell()返回為0)

(直接讀:不需要rewind()就可以讀取全部內容)(寫完再讀:讀之前需要用rewind()重置指標位置),如果檔案不存在則建立檔案;

無法通過rewind()把內容寫到前面,即只能在最後新增內容而不能修改任何內容

關閉檔案(關閉資源):

fclose($filename);

讀取檔案內容:

fread($fs,"讀取長度");//可配合filesize()讀取全部內容

配合while($str=fread($fs,3)){}迴圈實現一段一段地讀取,當返回的字串為空時,表示已經讀完,退出迴圈;缺點是碰到0或空字串可能會提前退出迴圈;

或者使用feof($fs):判斷指標是否已經到檔案末尾,是則返回true

file(); //不需要資源

返回陣列:一行字元為乙個元素

readfile(); //不需要資源

直接輸出內容,不能增刪改,可輸出

file_get_contents(); //不需要資源

可輸出,nl2br()把換行符轉換成

寫入檔案

fwrite($fs,3); //$fs是fopen返回的資源,讀取3個位元組,返回字串,可用filesize($filename)代替,讀取檔案全部內容

file_put_contents(); //不需要資源

移動檔案指標:

ftell($fs); //告訴你當前位置

fseek($fs,4,[,int$whence= seek_set

]); 

//到指定位置:4+whence

seek_set=0;seek_sur=1;seek_end=2

rewind(); //指標返回到檔案開頭

3、目錄操作

建立目錄

mkdir(); //成功返回true,否則false

刪除目錄

rmdir(); //目錄必須為空,成功返回true,否則false

directory_separator;

//系統目錄分隔符,windows下是\,linux下是/

path_separator;

路徑分隔符:(分號)

__file__;

//輸出該常量所在檔案的絕對路徑

遍歷目錄

opendir();

遍歷一層目錄,返回的是資源,失敗返回false

想要遍歷幾層目錄需要用:遞迴listdir(),(注意要過濾.和..兩個資料夾,不然會死迴圈)

利用遞迴思想可以檢測目錄的大小:totaldir(),要返回的成員變數

$total必須是靜態變數

readdir();

讀取目錄;利用while迴圈可以讀取目錄下所有檔案,迴圈條件:(返回值!=false)

closedir();

opendir()開啟流之後關閉流

scandir();

統計磁碟空間大小

disk_free_space();

disk_total_space();

4、檔案上傳

5、多檔案上傳

檔案操作函式

1,feof 檢查檔案流是否讀到了檔案尾 相關函式 fopen,fgetc,fgets,fread 表頭檔案 include 定義函式 int feof file stream 函式說明 feof 用來偵測是否讀取到了檔案尾,尾數stream為fopen 所返回之檔案指標。如果已到檔案尾則返回非零值...

檔案操作函式

fopenfclose函式 系統需要在記憶體中為每個讀寫的檔案開闢一段快取,快取中儲存檔案資訊的是file結構體,開啟檔案時就會獲得指向file的指標。為什麼要用快取呢,因為硬碟讀取時很慢的,機械硬碟的讀寫時間都是毫秒級,而記憶體讀寫是納秒級的,差了一百萬倍。函式原型為file fopen cons...

檔案操作函式

1.什麼是檔案 磁碟上的檔案是檔案。但是在程式設計中,我們一般談的檔案有兩種 程式檔案 資料檔案 1 程式檔案 包括源程式檔案 字尾為.c 目標檔案 windows環境字尾為.obj 可執行程式 windows環境字尾 為.exe 2 資料檔案 檔案的內容不一定是程式,而是程式執行時讀寫的資料,比如...