原 PHP檔案及目錄操作總結 一

2021-09-08 02:52:29 字數 1516 閱讀 3280

一. 檔案操作: 

1. 寫檔案

常規:fopen -- 開啟檔案 (注: 檔案模式)

fwrite(fputs--別名) -- 寫資料

fclose -- 關閉檔案

備註:檔案模式, 常用的有8種(r,r+,w,w+,x,x+,a,a+),另外還有b(推薦)和t(不推薦).

簡單:file_put_contents() -- 效果等同上面的操作. 第3個引數可以控制是否刪除已有內容.

2. 讀檔案

常規:1)

fopen -- 開啟檔案

2)i. fgetc -- 每次讀取單個字串(不常使用)

ii. fgets/fgetss/fgetcsv -- 每次讀取一行資料

fgetss與fgets區別是, fgetss可以過濾php和html標記.

fgetcsv可以使用定界符, 在處理excel或者逗號分隔的檔案時容易實現.

iii. fpassthru -- 讀取整個檔案, 將檔案輸出到標準輸出(如:瀏覽器), 返回值是false或者輸出的字元數目.

iv. fread -- 讀取指定長度的資料, 返回值為字串

3)fclose --關閉檔案

4)feof -- 讀取檔案時, 注意判斷是否到檔案結尾

簡單:readfile/file/file_get_contents -- 讀取整個檔案

readfile: 會將檔案內容輸出到標準輸出 (如: 瀏覽器)

file: 會將檔案內容返回到乙個陣列中, 每行就是乙個元素.

file_get_contents: 會將整個檔案內容返回到字串中,二進位制安全. (優先使用)

3. 其他函式

file_exists: 判斷檔案是否存在

filesize: 返回檔案大小, 單位: 位元組

unlink: 刪除檔案.

rewind: 檔案指標復位到檔案開始.

fseek: 移動檔案指標到某個位置.

ftell: 報告檔案指標當前位置. 單位: 位元組

4. 檔案鎖定

為了避免同時操作, 引入檔案鎖定函式flock, 操作值有4中:

lock_sh: 讀鎖定. 檔案可共享, 其他人也可以讀.

lock_ex: 寫鎖定. 不能被共享.

lock_un: 釋放所有鎖定.

lock_nb: 防止請求加鎖時阻塞. 

5. php操作檔案的缺點:

1) 檔案變大時, 操作會變慢;

如: 操作乙個200mb的文字檔案, 如何做?

2) 查詢記錄非常困難.

如: 二分法查詢或者定長記錄查詢關鍵字域, 如何做?

3) 併發訪問問題.

如: 高併發訪問時, 需要等待檔案解鎖, 如何做?

4) 隨機插入記錄,編輯或者刪除記錄比較困難

如: 檔案中間插入記錄,修改,刪除記錄,如何做? 如果檔案很大(200mb), 如何做?

5) 除了檔案訪問許可權限制外, 沒有簡單的辦法區分不同級別的資料訪問.

如: 構建合理的資料訪問控制許可權, 如何做?

php操作目錄及檔案的方法

這篇文章主要介紹了php遍歷刪除整個目錄及檔案的方法,涉及php操作目錄及檔案的技巧,具有一定參考借鑑價值,需要的朋友可以參考下本文例項講述了php遍歷刪除整個目錄及檔案的方法。具體分析如下 我們可以使用recursivedirectoryiterator 和 recursiveiteratorit...

php檔案目錄操作

新建檔案 1 先確定要寫入檔案的內容 content 你好 2 開啟這個檔案 系統會自動建立這個空檔案 假設新建的檔案叫file.txt,而且在上級目錄下。w表示 寫檔案 fp下面要用到,表示指向某個開啟的檔案。fp fopen file.txt w 3 將內容字串寫入檔案 fp告訴系統要寫入的檔案...

php檔案 目錄操作

訪問本地 遠端的檔案 服務端請求無 跨域限制 resource 型別理解 作為乙個容器的例項,有的話裡面封裝了檔案內容 或者是二進位制 對完提供api,以操作封裝在內的檔案內容 像c 的stream例項 feof f end of file 是否檔案結尾 檔案操作 resource fopen st...