將資料寫或讀入檔案,基本上分為三個步驟:
1.開啟乙個檔案(如果存在)
2.寫/讀檔案
3.關閉這個檔案
l開啟檔案
在開啟檔案檔案之前,我們需要知道這個檔案的路徑,以及此檔案是否存在。
用$_server[「document_root」]
內建全域性變數,來獲得站點的相對路徑。如下:
$root
=$_server
[「document_root」];
在用函式
file_exists()
來檢測檔案是否存在。如下:if(
!file_exists("
$root
/order.txt"))
接下來用
fopen()
函式開啟這個檔案。
$fp=
fopen("
$root
/order.txt",
'ab');
fopen()
函式,接受2個或3個或4個引數。
第乙個引數為檔案路徑,第二個為操作方式(讀/寫/追加等等),必選引數。
$fp=
fopen("
$root
/order.txt",
'ab');
第三個為可選引數,如果需要php在include_path中搜尋乙個檔案,就可以使用它,不需要提供目錄名或路徑。
$fp=
fopen("
order.txt",
'ab',
true
);第四個也為可選引數,允許檔名稱以協議名稱開始(如http://)並且在乙個遠端的位置開啟這個檔案,也支援一些其他的協議,比如ftp等等。
如果fopen()成功的開啟乙個檔案,就返回乙個指向此檔案的指標。在上面我們儲存到了$fp變數中。
附檔案模式圖
l
寫檔案在php中寫檔案比較簡單。直接用
fwrite()
函式即可。
fwrite()
的原型如下
int
fwrite
(resource
handle
,string
string[,
int length]);
第三個引數是可選的,表明寫入檔案的最大長度。
可以通過內建
strlen()
函式獲得字串的長度,如下:
fwrite
($fp
,$outputinfo
,strlen
($outputinfo
));此函式告訴php將$outputinfo中的資訊儲存到$fp指向的檔案中。
l
讀檔案1.
以唯讀模式開啟檔案
仍然使用
fopen()
函式,但唯讀模式開啟檔案,就用「rb」檔案模式。如下:
$fp=
fopen
(「$root
/order
.txt」
,』rb』);
2.知道何時讀完檔案
我們用while迴圈來讀取檔案內容,用
feof()
函式,作為迴圈條件的終止條件。如下:
while(!
feof
($fp
))3.每次讀取一行記錄
fgets()
$fp=
fopen("
$root
/order.txt",
'rb');
while(!
feof
($fp
))fclose
($fp
);這樣,他將不斷的讀入資料,直到讀取乙個換行符(\n)或者檔案結束符eof,或者是從檔案中讀取了998b,可以讀取的最大長度為指定的長度減去1b。
4.
讀取整個檔案
php提供了4中不同的方式來讀取整個檔案。
a).readfile()
函式它可以不用先fopen($path)檔案和關閉檔案,也不用echo,直接使用即可。如下:
readfile
(「$root
/order
.txt」);
它會自動把檔案的資訊,輸出到瀏覽器中。它的原型如下:
int
readfile
(string
filename
,[int use_include_path[
,resource
context]]);
第二個可選引數指定了php是否在include_path中查詢檔案,這一點於fopen函式一樣,返回值為從檔案中讀取的位元組總數。
注:直接使用,不用
fopen
或fclose
b).fpassthru()
函式要使用這個函式,必須先fopen()開啟乙個檔案。然後將檔案的指標作為引數傳遞給fpassthru(),這樣就可以把檔案指標所指向的檔案內容輸出。然後再將這個檔案關閉。如下:
$fp=
fopen
(「$root
/order
.txt」,'
rb');fpassthru
($fp
);fclose
($fp
);返回值同樣為從檔案中讀取的位元組總數。
注:必須
fopen
和fclose
c).file()
函式除了將檔案輸出到瀏覽器中外,他和readfile()函式是一樣的,它把結果傳送到乙個陣列中。如下:
$filearray
=file
(「$root
/order
.txt」);
檔案中的每一行,將作為陣列的每乙個元素。
注:直接使用,不用
fopen
和fclose
d).file_get_contents()
函式於readfile()相同,但是該函式將以字串的形式返回檔案內容,而不是將檔案內容直接輸出到瀏覽器中,也就是必須使用echo 輸出,如下:
echo
file_get_contents
(「$root
/order
.txt」);
注:直接使用,不用
fopen
和fclose
5.
讀取乙個字元
fgetc()
$fp=
fopen("
$root
/order.txt",
'rb');
while(!
feof
($fp))}
fclose
($fp
);注:fgetc()
函式的乙個缺點就是它返回檔案的結束符
eof,而
fgets()
則不會。讀取字元後還需要判斷
feof()
。6.
讀取任意長度
fread()
函式即為從檔案中讀取任一長度的位元組,函式原型如下:
string
fread
(resourcefp,
int length);
使用該函式時,它或者是讀滿了length引數所指定的位元組數,或者是讀到了檔案的結束。
$fp=
fopen("
$root
/order.txt",
'rb');
echo
fread
($fp,10
); //
讀取10個位元組
fclose
($fp
);l關閉檔案
關閉檔案比較簡單,直接呼叫
fclose()
函式即可,如果返回true,則表明成功,反之。如下:
fclose
($fp
);l刪除檔案
unlink()
函式(沒有名為delete的函式),如下:
unlink("
$root
/order.txt");
l確定檔案大小
可以使用
filesize()
函式來檢視乙個檔案的大小(位元組為單位),如下:
echo
filesize("
$root
/order.txt");
參考:php與mysql.web開發
PHP學習 檔案操作
將資料寫或讀入檔案,基本上分為三個步驟 1.開啟乙個檔案 如果存在 2.寫 讀檔案 3.關閉這個檔案 l 開啟檔案 在開啟檔案檔案之前,我們需要知道這個檔案的路徑,以及此檔案是否存在。用 server document root 內建全域性變數,來獲得站點的相對路徑。如下 root server d...
Python學習 檔案操作
python使用open來開啟資料流 data open data.txt 下面是乙個讀取乙個檔案,然後逐行輸出的 try data open data.txt for each line in data try role,line spoken each line.split 1 print ro...
OC學習 檔案操作
oc中檔案的操作可以分為兩類 1 檔案本省的操作 建立 刪除 移動 拷貝等 2 檔案內容的操作 讀 寫等 讀 磁碟 記憶體 寫 記憶體 磁碟 要想學會oc中的檔案操作,我們就要學會兩個類 nsfilemanager 檔案管理類 nsfilehandle 檔案控制代碼類 一 nsfilemanager...