日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP学习:文件操作

發布時間:2024/8/22 php 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP学习:文件操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

將數據寫或讀入文件,基本上分為三個步驟:

1.???????? 打開一個文件(如果存在)

2.???????? /讀文件

3.???????? 關閉這個文件

?

l打開文件

在打開文件文件之前,我們需要知道這個文件的路徑,以及此文件是否存在。

?

$_SERVER[“DOCUMENT_ROOT”]內置全局變量,來獲得站點的相對路徑。如下:

$root?=?$_SERVER[“DOCUMENT_ROOT”];

?

在用函數file_exists()來檢測文件是否存在。如下:

If(!file_exists("$root/order.txt")){echo?‘文件不存在’;}

?

接下來用fopen()函數打開這個文件。

$fp?=?fopen("$root/order.txt",'ab');

?

fopen()函數,接受2個或3個或4個參數。

第一個參數為文件路徑,第二個為操作方式(讀//追加等等),必選參數。

$fp?=?fopen("$root/order.txt",'ab');

?

第三個為可選參數,如果需要PHPinclude_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)){

?????????
$info?=?fgets($fp,999);

?????????
echo?$info.'<br?/>';

}

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函數一樣,返回值為從文件中讀取的字節總數。

???????? 注:直接使用,不用fopenfclose

b).fpassthru()函數

???????? 要使用這個函數,必須先fopen()打開一個文件。然后將文件的指針作為參數傳遞給fpassthru(),這樣就可以把文件指針所指向的文件內容輸出。然后再將這個文件關閉。如下:?????????

$fp?=?fopen(“$root/order.txt”,'rb');
fpassthru($fp);
fclose($fp);

???????? 返回值同樣為從文件中讀取的字節總數。

???????? 注:必須fopenfclose

c).file()函數

???????? 除了將文件輸出到瀏覽器中外,他和readfile()函數是一樣的,它把結果發送到一個數組中。如下:?????????

$fileArray?=?file(“$root/order.txt”);

???????? 文件中的每一行,將作為數組的每一個元素。

???????? 注:直接使用,不用fopenfclose

d).file_get_contents()函數

readfile()相同,但是該函數將以字符串的形式返回文件內容,而不是將文件內容直接輸出到瀏覽器中,也就是必須使用echo 輸出,如下:

echo?file_get_contents(“$root/order.txt”);

注:直接使用,不用fopenfclose

5.讀取一個字符

fgetc()函數從一個文件中一次讀取一個字符,它具有一個文件指針函數,這也是唯一的參數,而且它返回下一個字符。如下:

$fp?=?fopen("$root/order.txt",'rb');

while(!feof($fp)){

?????????
$char?=?fgetc($fp);????????????

?????????
if(!feof($fp)){

???????????????????
echo?($char?==?"\n"???'<br?/>'?:?$char);

?????????}

}

fclose($fp);

注:fgetc()函數的一個缺點就是它返回文件的結束符EOF,而fgets()則不會。讀取字符后還需要判斷feof()

6.?讀取任意長度

fread()函數即為從文件中讀取任一長度的字節,函數原型如下:

string?fread(resource?fp,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開發

轉載于:https://www.cnblogs.com/xbf321/archive/2011/09/01/file-in-php.html

總結

以上是生活随笔為你收集整理的PHP学习:文件操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。