第九章(1)檔案系統處理
在php中儲存的方式有兩種:1.寫入檔案. 2.寫入資料庫.
php對檔案系統的操作是基於Unix或Linux系統的.
fopen(1.目標檔案名稱 2.檔案開啟檔案) 開啟檔案的函數.
目標檔案名稱:
windows : C:\test\test.txt C:\test/test.txt
linux : /root/test/test.txt
檔案開啟檔案:
r :以讀的方式開啟檔案.
r+ :以讀和寫的方式開啟檔案,並將檔案指標指向檔案開始.
w :以寫的方式開啟檔案,如果該檔案包含任何資料,則資料將丟失,如果檔案不存在,則建立檔案.
w+ :以讀和寫的方式開啟檔案,如果該檔案包含任何資料,則資料將丟失,如果該檔案不存在,則建立檔案.
a :以寫的方式開啟檔案,將檔案指標指向末尾,如果該檔案不存在,則建立檔案.
a+ :以讀和寫的方式開啟檔案,將檔案指標指向檔案末尾,如果該檔案不存在,則建立檔案.
x :建立並以寫入方式開啟,將檔案見指標指向檔案頭,如果檔案已存在,則fopen()調用失敗返回FALSE,並 產生一條E_WARNING層級的錯誤資訊,如果檔案不存在則嘗試建立檔案,這個參數僅能用於本地檔案.
x+ :建立並以寫入方式開啟,其它與x的功能完全相同.
fwrite(1.目標檔案名稱 2.要寫入的內容 3.寫入的長度) 寫入檔案的函數.
fclose(目標檔案名稱) 關閉檔案的函數.
fread(1.目標檔案名稱 2.讀取長度) 讀取檔案的函數.<如果要讀取全文,可以使用filesize(目標檔案名稱) 擷取全文的長度>
fgets(1.目標檔案名稱 2.選擇性參數,讀取一行裡面的長度) 讀取檔案裡面一行的函數.
fgetc(目標檔案名稱) 讀取檔案裡面一個字元的函數.
file(目標檔案名稱) 不用開啟和關閉就可以直接讀取檔案的函數,但返回的是以換行為單位的數組.
readfile(目標檔案名稱) 不用開啟和關閉檔案,直接輸出目標檔案裡面的所有內容的函數.
用檔案寫入和檔案讀取做計數器的執行個體:
$jishu="jishu.txt";
if(!file_exists($jishu))
{
$kjs = fopen($jishu,"w");
fwrite($kjs,0);
fclose($kjs);
}
function kaishi($jishu)
{
$js = fopen($jishu,"r");
$du = fread($js,8);
fclose($js);
$du += 1;
echo "你是本站的第".$du."位訪客!!!";
$xie = fopen($jishu,"w");
fwrite($xie,$du);
fclose($xie);
}
kaishi($jishu);
輸出結果:開啟的計數器被訪問了幾次就會輸出幾.
file_get_contents(目標檔案名稱) 不用開啟和關閉檔案就可以直接讀取檔案的函數,但將整個檔案返回一個字串.
file_put_contents(1.目標檔案名稱 2.要寫入的內容) 不用開啟和關閉檔案就可以直接寫入檔案的函數.
flock(1.目標檔案名稱 2.選擇以下參數) 檔案鎖定的函數.
鎖定檔案的參數可選:
LOCK_SH :共用鎖定定,讀取檔案的時候使用.
LOCK_EX :獨佔鎖定,寫入檔案的時候使用.
LOCK_UN :釋放鎖定.
LOCK_NB :附加鎖定,避免檔案同時被多人鎖定的時候使用.
ftell(目標檔案名稱) 返迴文件指標當前位置的函數.
fseek(1.目標檔案名稱 2.移動的位元組數 3.起始位置選擇參數) 移動檔案指標到指定位置的函數.
起始可選擇參數有:
SEEK_SET :起點位置 SEEK_CUR :當前位置 SEEK_END :末尾位置
rewind(目標檔案名稱) 移動檔案指標到檔案開頭的函數.
cpoy(1.目標檔案名稱 2.拷貝到的檔案名稱) 拷貝檔案的函數.
unkink(目標檔案名稱) 刪除檔案的函數.
rename(1.目標檔案名稱 2.新檔案名稱) 檔案的重新命名函數.
ftruncate(1.目標檔案名稱 2.要截取的長度) 截取檔案內容的函數.
filectime(目標檔案名稱) 擷取檔案建立時間的函數.
filemtime(目標檔案名稱) 擷取檔案更改時間的函數.
fileatime(目標檔案名稱) 擷取檔案上一次訪問時間的函數.
file_exists(目標檔案名稱) 判斷檔案或目錄是否存在的函數.
filesize(目標檔案名稱) 擷取檔案大小的函數.
filetype(目標檔案名稱) 擷取檔案類型的函數.
is_dir(目標檔案名稱) 判斷檔案是否是目錄的函數.
is_file(目標檔案名稱) 判斷檔案是否是正常檔案的函數.
is_link(目標檔案名稱) 判斷檔案是否是符號串連檔案的函數.
is_executable(目標檔案名稱) 判斷檔案是否是可以執行的檔案的函數.
is_readable(目標檔案名稱) 判斷檔案是否是可讀檔案的函數.
is_writable(目標檔案名稱) 判斷檔案是否是可寫檔案的函數.
chmod(1.目標檔案名稱 2.許可權長度) 修改檔案許可權的函數.
chown(1.目標檔案名稱 2.要擁有者的ID) 修改檔案擁有者的函數.
chgrp(1.目標檔案名稱 2.要擁有組的ID) 修改檔案擁有組的函數.
fileowner(目標檔案名稱) 擷取檔案擁有者的函數.
filegroup(目標檔案名稱) 擷取檔案擁有組的函數.