關於PHP檔案操作的簡單介紹

TP_funny發表於2015-01-28
檔案操作一直是Web程式設計師頭疼的地方,而檔案操作在CMS這樣的系統中又是必須的。如今,PHP檔案操作的函式內容已經非常強大,檔案這部分也是學習PHP非常重要的一部分,希望大家不要忽略。這篇文章會簡單介紹一下PHP的幾個基本檔案操作,最後附有PHP檔案函式彙總,供大家參考和學習。

1. 開啟檔案:fopen("檔名","模式");
模式引數:
r:只讀,將檔案指標指向檔案頭。
r+:讀/寫,將檔案指標指向檔案頭。
w:只寫,開啟並清空檔案的內容。如果檔案不存在,則建立檔案。
w+:讀/寫,開啟並清空檔案的內容。如果檔案不存在,則建立檔案。
a:追加,開啟並向檔案的末端進行寫操作。如果檔案不存在,則建立新檔案。 
a+:讀/追加,通過向檔案末端寫內容,來保持檔案內容。

2. 關閉檔案:fclose();
使用檔案完畢,要顯式的告訴PHP已經使用完檔案,例如:
$file=fopen("test.txt","r"); //關閉一個已開啟的檔案指標
//some code be executed  
fclose=($file);

3. 檢測是否已達到檔案的末端: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. 讀取任意二進位制資料:fread()

7. 判斷檔案讀取的狀態
每個檔案控制程式碼都有一個檔案指標,根據fopen函式的mode引數,檔案指標最初位於檔案的開頭,或者檔案的末尾。feof()可以判斷檔案是否已經到末尾;filesize()函式返回檔案的大小。

8. 寫入檔案和許可權判斷
fwrite() 函式執行檔案寫入
is_readable()//判斷檔案是否可讀
is_writeable()//判斷檔案是否可寫
is_writable()//判斷檔案是否可寫
file_exists()//是否存在這個檔案
程式碼舉例:
$filename = 'test.txt';
$somecontent;
// 首先我們要確定檔案存在並且可寫 
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 不可寫";
}

9. 將檔案讀取到一個陣列:
$array=file("text.txt"),$array[0]就是第一行文字,依次類推。如果要翻轉整個陣列,例如:
$arr=array_reverse($array);
則最後一行文字就是$arr[0]

10. 訪問目錄
目錄訪問建議使用前向斜線"/",相容windows和unix系統。主要函式包括:
basename()//返回不包括路徑資訊的檔名
dirname()//返回檔名的目錄部分
realpath()//接受相對路徑,返回檔案的絕對路徑
pathinfo()//提取給定路徑的目錄名,基本檔名和副檔名
opendir()//開啟目錄,返回資源控制程式碼
readdir()//讀取目錄項
rewinddir()//將讀取指標返回開頭
closedir()//關閉讀取控制程式碼
chdir()//改變當前指令碼執行期間的當前工作目錄
mkdir()//建立目錄
rmdir()刪除目錄
 
附:PHP檔案函式大全 
basename — 返回路徑中的檔名部分 
chgrp — 改變檔案所屬的組 
chmod — 改變檔案模式 
chown — 改變檔案的所有者 
clearstatcache — 清除檔案狀態快取 
copy — 拷貝檔案 
delete — 參見 unlink() 或 unset() 
dirname — 返回路徑中的目錄部分 
disk_free_space — 返回目錄中的可用空間 
disk_total_space — 返回一個目錄的磁碟總大小 
diskfreespace — disk_free_space()的別名 
fclose — 關閉一個已開啟的檔案指標 
feof — 測試檔案指標是否到了檔案結束的位置 
fflush — 將緩衝內容輸出到檔案 
fgetc — 從檔案指標中讀取字元 
fgetcsv — 從檔案指標中讀入一行並解析 CSV 欄位 
fgets — 從檔案指標中讀取一行 
fgetss — 從檔案指標中讀取一行並過濾掉 HTML 標記 
file_exists — 檢查檔案或目錄是否存在 
file_get_contents — 將整個檔案讀入一個字串 
file_put_contents — 將一個字串寫入檔案 
file — 把整個檔案讀入一個陣列中 
fileatime — 取得檔案的上次訪問時間 
filectime — 這個PHP檔案函式取得檔案的 inode 修改時間 
filegroup — 取得檔案的組 
fileinode — 取得檔案的 inode 
filemtime — 取得檔案修改時間 
fileowner — 取得檔案的所有者 
fileperms — 取得檔案的許可權 
filesize — 取得檔案大小 
filetype — 取得檔案型別 
flock — 輕便的諮詢檔案鎖定 
fnmatch — 用模式匹配檔名 
fopen — 開啟檔案或者 URL 
fpassthru — 輸出檔案指標處的所有剩餘資料 
fputcsv — 將行格式化為 CSV 並寫入檔案指標 
fputs — fwrite()的別名 
fread — 讀取檔案(可安全用於二進位制檔案) 
fscanf — 從檔案中格式化輸入 
fseek — 在檔案指標中定位 
fstat — 通過已開啟的檔案指標取得檔案資訊 
ftell — 返回檔案指標讀/寫的位置 
ftruncate — 將檔案截斷到給定的長度 
fwrite — 寫入檔案(可安全用於二進位制檔案) 
glob — 尋找與模式匹配的檔案路徑 
is_dir — 該PHP檔案函式判斷給定檔名是否是一個目錄 
is_executable — 判斷給定檔名是否可執行 
is_file — 判斷給定檔名是否為一個正常的檔案 
is_link — 判斷給定檔名是否為一個符號連線 
is_readable — 判斷給定檔名是否可讀 
is_uploaded_file — 判斷檔案是否是通過 HTTP POST 上傳的 
is_writable — 判斷給定的檔名是否可寫 
is_writeable — is_writable()的別名 
link — 建立一個硬連線 
linkinfo — 獲取一個連線的資訊 
lstat — 給出一個檔案或符號連線的資訊 
mkdir — 新建目錄 
move_uploaded_file — 將上傳的檔案移動到新位置 
parse_ini_file — 解析一個配置檔案 
pathinfo — 返回檔案路徑的資訊 
pclose — 關閉程式檔案指標 
popen — 開啟程式檔案指標 
readfile — 輸出一個檔案 
readlink — 返回符號連線指向的目標 
realpath — 返回規範化的絕對路徑名 
rename — 重新命名一個檔案或目錄 
rewind — 倒回檔案指標的位置 
rmdir — 刪除目錄 
set_file_buffer — stream_set_write_buffer()的別名 
stat — 給出檔案的資訊 
symlink — 建立符號連線 
tempnam — 建立一個具有唯一檔名的檔案 
tmpfile — 建立一個臨時檔案 
touch — 設定檔案的訪問和修改時間 
umask — 改變當前的 umask 
unlink — 刪除檔案
來自:PHP100
評論(1)

相關文章