PHP文件操作簡(jiǎn)單介紹及函數(shù)匯總
文件操作一直是Web程序員頭疼的地方,而文件操作在CMS這樣的系統(tǒng)中又是必須的。如今,PHP文件操作的函數(shù)內(nèi)容已經(jīng)非常強(qiáng)大,文件這部分也是學(xué)習(xí)PHP非常重要的一部分,希望大家不要忽略。這篇文章會(huì)簡(jiǎn)單介紹一下PHP的幾個(gè)基本文件操作,最后附有PHP文件函數(shù)匯總,供大家參考和學(xué)習(xí)。
1. 打開(kāi)文件:fopen('文件名','模式');
模式參數(shù):
r:只讀,將文件指針指向文件頭。r+:讀/寫(xiě),將文件指針指向文件頭。w:只寫(xiě),打開(kāi)并清空文件的內(nèi)容。如果文件不存在,則創(chuàng)建文件。w+:讀/寫(xiě),打開(kāi)并清空文件的內(nèi)容。如果文件不存在,則創(chuàng)建文件。a:追加,打開(kāi)并向文件的末端進(jìn)行寫(xiě)操作。如果文件不存在,則創(chuàng)建新文件。a+:讀/追加,通過(guò)向文件末端寫(xiě)內(nèi)容,來(lái)保持文件內(nèi)容。
2. 關(guān)閉文件:fclose();
使用文件完畢,要顯式的告訴PHP已經(jīng)使用完文件,例如:
$file=fopen('test.txt','r'); //關(guān)閉一個(gè)已打開(kāi)的文件指針//some code be executed fclose=($file);
3. 檢測(cè)是否已達(dá)到文件的末端:feof();
例如:if(feof($file)){ echo 'end of file';}
4. 逐行讀取文件:fgets();
例如:
$file=fopen('test.txt','r'); while(!feof($file)){ echo fgets($file).'< br/>'; } fclose($file);
5. 逐字符讀取文件:fgetc()
6. 讀取任意二進(jìn)制數(shù)據(jù):fread()
7. 判斷文件讀取的狀態(tài)
每個(gè)文件句柄都有一個(gè)文件指針,根據(jù)fopen函數(shù)的mode參數(shù),文件指針最初位于文件的開(kāi)頭,或者文件的末尾。feof()可以判斷文件是否已經(jīng)到末尾;filesize()函數(shù)返回文件的大小。
8. 寫(xiě)入文件和權(quán)限判斷
fwrite() 函數(shù)執(zhí)行文件寫(xiě)入is_readable()//判斷文件是否可讀is_writeable()//判斷文件是否可寫(xiě)is_writable()//判斷文件是否可寫(xiě)file_exists()//是否存在這個(gè)文件
代碼舉例:
$filename = ’test.txt’; $somecontent;// 首先我們要確定文件存在并且可寫(xiě)if (is_writable($filename)) { // 在這個(gè)例子里,我們將使用添加模式打開(kāi)$filename, 因此,文件指針將會(huì)在文件的開(kāi)頭,那就是當(dāng)我們使用fwrite()的時(shí)候,$somecontent將要寫(xiě)入的地方。 if (!$handle = fopen($filename, ’a’)) { echo '不能打開(kāi)文件 $filename'; exit; } // 將$somecontent寫(xiě)入到我們打開(kāi)的文件中。 if (fwrite($handle, $somecontent) === FALSE) {echo '不能寫(xiě)入到文件 $filename';exit; } echo '成功地將 $somecontent 寫(xiě)入到文件$filename'; fclose($handle); } else{ echo '文件 $filename 不可寫(xiě)';}
9. 將文件讀取到一個(gè)數(shù)組:
$array=file('text.txt'),$array[0]就是第一行文本,依次類推。如果要翻轉(zhuǎn)整個(gè)數(shù)組,例如:$arr=array_reverse($array);
則最后一行文本就是$arr[0]
10. 訪問(wèn)目錄
目錄訪問(wèn)建議使用前向斜線'/',兼容windows和unix系統(tǒng)。主要函數(shù)包括:
basename()//返回不包括路徑信息的文件名dirname()//返回文件名的目錄部分realpath()//接受相對(duì)路徑,返回文件的絕對(duì)路徑pathinfo()//提取給定路徑的目錄名,基本文件名和擴(kuò)展名opendir()//打開(kāi)目錄,返回資源句柄readdir()//讀取目錄項(xiàng)rewinddir()//將讀取指針?lè)祷亻_(kāi)頭closedir()//關(guān)閉讀取句柄chdir()//改變當(dāng)前腳本執(zhí)行期間的當(dāng)前工作目錄mkdir()//創(chuàng)建目錄rmdir()刪除目錄
附:PHP文件函數(shù)大全
basename — 返回路徑中的文件名部分chgrp — 改變文件所屬的組chmod — 改變文件模式chown — 改變文件的所有者clearstatcache — 清除文件狀態(tài)緩存copy — 拷貝文件delete — 參見(jiàn) unlink() 或 unset()dirname — 返回路徑中的目錄部分disk_free_space — 返回目錄中的可用空間disk_total_space — 返回一個(gè)目錄的磁盤(pán)總大小diskfreespace — disk_free_space()的別名fclose — 關(guān)閉一個(gè)已打開(kāi)的文件指針feof — 測(cè)試文件指針是否到了文件結(jié)束的位置fflush — 將緩沖內(nèi)容輸出到文件fgetc — 從文件指針中讀取字符fgetcsv — 從文件指針中讀入一行并解析 CSV 字段fgets — 從文件指針中讀取一行fgetss — 從文件指針中讀取一行并過(guò)濾掉 HTML 標(biāo)記file_exists — 檢查文件或目錄是否存在file_get_contents — 將整個(gè)文件讀入一個(gè)字符串file_put_contents — 將一個(gè)字符串寫(xiě)入文件file — 把整個(gè)文件讀入一個(gè)數(shù)組中fileatime — 取得文件的上次訪問(wèn)時(shí)間filectime — 這個(gè)PHP文件函數(shù)取得文件的 inode 修改時(shí)間filegroup — 取得文件的組fileinode — 取得文件的 inodefilemtime — 取得文件修改時(shí)間fileowner — 取得文件的所有者fileperms — 取得文件的權(quán)限filesize — 取得文件大小filetype — 取得文件類型flock — 輕便的咨詢文件鎖定fnmatch — 用模式匹配文件名fopen — 打開(kāi)文件或者 URLfpassthru — 輸出文件指針處的所有剩余數(shù)據(jù)fputcsv — 將行格式化為 CSV 并寫(xiě)入文件指針fputs — fwrite()的別名fread — 讀取文件(可安全用于二進(jìn)制文件)fscanf — 從文件中格式化輸入fseek — 在文件指針中定位fstat — 通過(guò)已打開(kāi)的文件指針取得文件信息ftell — 返回文件指針讀/寫(xiě)的位置ftruncate — 將文件截?cái)嗟浇o定的長(zhǎng)度f(wàn)write — 寫(xiě)入文件(可安全用于二進(jìn)制文件)glob — 尋找與模式匹配的文件路徑is_dir — 該P(yáng)HP文件函數(shù)判斷給定文件名是否是一個(gè)目錄is_executable — 判斷給定文件名是否可執(zhí)行is_file — 判斷給定文件名是否為一個(gè)正常的文件is_link — 判斷給定文件名是否為一個(gè)符號(hào)連接is_readable — 判斷給定文件名是否可讀is_uploaded_file — 判斷文件是否是通過(guò) HTTP POST 上傳的is_writable — 判斷給定的文件名是否可寫(xiě)is_writeable — is_writable()的別名link — 建立一個(gè)硬連接linkinfo — 獲取一個(gè)連接的信息lstat — 給出一個(gè)文件或符號(hào)連接的信息mkdir — 新建目錄move_uploaded_file — 將上傳的文件移動(dòng)到新位置parse_ini_file — 解析一個(gè)配置文件pathinfo — 返回文件路徑的信息pclose — 關(guān)閉進(jìn)程文件指針popen — 打開(kāi)進(jìn)程文件指針readfile — 輸出一個(gè)文件readlink — 返回符號(hào)連接指向的目標(biāo)realpath — 返回規(guī)范化的絕對(duì)路徑名rename — 重命名一個(gè)文件或目錄rewind — 倒回文件指針的位置rmdir — 刪除目錄set_file_buffer — stream_set_write_buffer()的別名stat — 給出文件的信息symlink — 建立符號(hào)連接tempnam — 建立一個(gè)具有唯一文件名的文件tmpfile — 建立一個(gè)臨時(shí)文件touch — 設(shè)定文件的訪問(wèn)和修改時(shí)間umask — 改變當(dāng)前的 umaskunlink — 刪除文件
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ASP基礎(chǔ)入門(mén)第三篇(ASP腳本基礎(chǔ))2. 無(wú)線標(biāo)記語(yǔ)言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁(yè)3. 解析原生JS getComputedStyle4. 前端從瀏覽器的渲染到性能優(yōu)化5. PHP循環(huán)與分支知識(shí)點(diǎn)梳理6. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)7. ASP實(shí)現(xiàn)加法驗(yàn)證碼8. 讀大數(shù)據(jù)量的XML文件的讀取問(wèn)題9. css代碼優(yōu)化的12個(gè)技巧10. 利用CSS3新特性創(chuàng)建透明邊框三角
