PHP學習 檔案操作

2022-02-27 21:24:04 字數 4388 閱讀 5500

將資料寫或讀入檔案,基本上分為三個步驟:

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