您好,登錄后才能下訂單哦!
這篇文章主要講解了“PHP常見的文件操作方式介紹”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“PHP常見的文件操作方式介紹”吧!
1.打開文件
resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] ) $handle = fopen(filename,mode)//打開文件,返回代表此文件的資源的句柄
文件名稱可以使用相對路徑或者絕對路徑也可以使用網絡協議模式,打開模式具有r\r+\w\w+\a\a+\x\x+\b
在操作二進制文件時如果沒有指定 'b' 標記,可能會碰到一些奇怪的問題,包括壞掉的圖片文件以及關于 \r\n 字符的奇怪問題。
為移植性考慮,強烈建議在用 fopen() 打開文件時總是使用 'b' 標記。
以下是幾種打開文件的方式
$fp = @fopen('log.txt',"rb"); $fp = @fopen('../log.txt',"rb"); $fp = @fopen("http://www.runer.com.cn/default.htm","rb");//還可以使用ftp和ghoper等協議,必須啟用php.ini文件中的allow_url_fopen選項
$filename1 = "userinfo.txt";//目錄下或include_path中存在這個文件 $filename2 = "test.txt";//目錄下或include_path并不存在這個文件 $resource1 = fopen($filename1,"rb"); @$resource2 = fopen($filename2,"rb");//因為目錄中不存在這個文件,并且并未使用或include_path尋找包含文件所在路徑則此操作會報錯,使用錯誤抑制符@可以迫使瀏覽器不輸出錯誤信息 if($resource1) echo "打開文件{$filename1}成功"; if(!@fopen($filename2,"r")) echo "打開文件{$filename2}不成功";
輸出結果:打開文件userinfo.txt成功
2.使用完畢文件后,要顯式的告訴PHP已經使用完文件,讓操作系統確保將文件的所有內容正確地從緩沖區刷新到硬盤
使用fclose()關閉文件,
bool fclose ( resource handle )//關閉一個已打開的文件指針
3.讀取文件,fopen函數的mode參數允許讀取,PHP提供了幾個函數從文件讀取數據
string fgets ( int handle [, int length] )從文件指針中讀取一行,在二進制文件上嘗試fgets會產生不可預測的結果
如果不指定長度,默認讀取1K數據,碰到換行符(包括在返回值中)、EOF 或者已經讀取了 length - 1 字節后停止
string fgetss ( resource handle [, int length [, string allowable_tags]] )從文件指針中讀取一行并過濾掉 HTML 標記
fgetc()讀取單個字符
fread()讀取任意二進制數據
代碼部分:
$handle = fopen ("test.jpg", "rb"); $c; while (!feof($handle)) { $contents .= @fread($handle, 8192);//循環讀取并將其合并為一個大塊文件 } fclose($handle);
4.判斷文件讀取的狀態
每個文件句柄都有一個文件指針,或者一個指出下一個操作將在文件中哪里發生的游標,根據fopen函數的mode參數
文件指針最初位于文件的開頭(0),或者文件的末尾
feof()可以判斷文件是否已經到末尾(到末尾后函數返回TRUE)
filesize()函數返回文件的大小 5.寫入文件
fwrite()函數執行文件寫入
代碼部分:
$filename = 'test.txt'; $somec; // 首先我們要確定文件存在并且可寫。 if (is_writable($filename)) { // 在這個例子里,我們將使用添加模式打開$filename, // 因此,文件指針將會在文件的開頭, // 那就是當我們使用fwrite()的時候,$somecontent將要寫入的地方。 if (!$handle = fopen($filename, 'a')) { echo "不能打開文件 $filename"; exit; } // 將$somecontent寫入到我們打開的文件中。 if (fwrite($handle, $somecontent) === FALSE) { echo "不能寫入到文件 $filename"; exit; } echo "成功地將 $somecontent 寫入到文件$filename"; fclose($handle); } else { } echo "文件 $filename 不可寫";
輸出結果:
成功地將 添加這些文字到文件 寫入到文件test.txt
對于二進制數據,必須指定第三個參數,它包含寫入到磁盤的數據字節數
$result = @fwrite($fp,$binary_data,mb_strlen($binary_data,'8bit'));
6.文件權限和其他信息
is_readable()//判斷文件是否可讀
is_writeable()//判斷文件是否可寫
is_writable()//判斷文件是否可寫
fileperms()//判斷文件的權限(UNIX風格的文件權限測試函數)
file_exists()//是否存在這個文件
fileowner()//判斷文件所屬用戶
filegroup()//判斷文件所屬組
7.刪除和重命名文件
unlink()//刪除文件
rename()//重命名文件
8.訪問目錄
目錄訪問建議使用前向斜線"/",兼容windows和unix系統
basename()//返回不包括路徑信息的文件名
dirname()//返回文件名的目錄部分
realpath()//接受相對路徑,返回文件的絕對路徑
pathinfo()//提取給定路徑的目錄名,基本文件名和擴展名
opendir()//打開目錄,返回資源句柄
readdir()//讀取目錄項
rewinddir()//將讀取指針返回開頭
closedir()//關閉讀取句柄
chdir()//改變當前腳本執行期間的當前工作目錄
mkdir()//創建目錄
rmdir()刪除目錄
感謝各位的閱讀,以上就是“PHP常見的文件操作方式介紹”的內容了,經過本文的學習后,相信大家對PHP常見的文件操作方式介紹這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。