PHP學習 檔案操作

2021-07-03 01:25:35 字數 4213 閱讀 3715

將資料寫或讀入檔案,基本上分為三個步驟: 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變數中。

附檔案模式圖

寫檔案在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學習 檔案操作

將資料寫或讀入檔案,基本上分為三個步驟 1.開啟乙個檔案 如果存在 2.寫 讀檔案 3.關閉這個檔案 l開啟檔案 在開啟檔案檔案之前,我們需要知道這個檔案的路徑,以及此檔案是否存在。用 server document root 內建全域性變數,來獲得站點的相對路徑。如下 root server do...

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...