亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

PHP文件處理

PHP 文件處理


數(shù)據(jù)的存取

數(shù)據(jù)在服務(wù)器上的存取主要有兩種方式:文件或者數(shù)據(jù)庫(kù)

目前絕大多數(shù)應(yīng)用都是使用數(shù)據(jù)庫(kù)來(lái)讀寫(xiě)數(shù)據(jù),但是文件存取在某些場(chǎng)合仍然會(huì)使用,譬如:

?      記錄錯(cuò)誤日志

?      導(dǎo)出數(shù)據(jù)到文件

從文件導(dǎo)入數(shù)據(jù)

寫(xiě)文件

寫(xiě)文件主要有三步操作,就如同我們手動(dòng)操作一樣,程序也要遵守下面的步驟:

?       打開(kāi)文件,使用fopen函數(shù)

?       寫(xiě)入文件,使用fwrite函數(shù)

?       關(guān)閉文件,使用fclose函數(shù)

打開(kāi)文件

fopen() 函數(shù)用于在 PHP 中打開(kāi)文件。

此函數(shù)的第一個(gè)參數(shù)含有要打開(kāi)的文件的名稱(chēng),第二個(gè)參數(shù)規(guī)定了使用哪種模式來(lái)打開(kāi)文件:

<html>
 <body>
 <?php
 $file=fopen("welcome.txt","r");
 ?>
 </body>
 </html>

文件可能通過(guò)下列模式來(lái)打開(kāi):

QQ圖片20161009145912.png

注釋?zhuān)喝绻?fopen() 函數(shù)無(wú)法打開(kāi)指定文件,則返回 0 (false)。

實(shí)例

如果 fopen() 函數(shù)不能打開(kāi)指定的文件,下面的實(shí)例會(huì)生成一段消息:

<html>
 <body>
 <?php
 $file=fopen("welcome.txt","r") or exit("Unable to open file!");
 ?>
 </body>
 </html>

 寫(xiě)入文件

fwrite () 函數(shù)用于寫(xiě)入文件

fwrite主要也是兩個(gè)參數(shù),handle是fopen打開(kāi)成功后返回的Resource變量,string是要寫(xiě)入的數(shù)據(jù)

int fwrite ( resource $handle , string $string [, int $length ] )

當(dāng)寫(xiě)入成功后,fwrite會(huì)返回寫(xiě)入的字符數(shù),如果寫(xiě)入失敗則返回false

實(shí)例

<?php
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "Bill Gates\n";
fwrite($myfile, $txt);
$txt = "Steve Jobs\n";
fwrite($myfile, $txt);
fclose($myfile);
?>

請(qǐng)注意,我們向文件 "newfile.txt" 寫(xiě)了兩次。在每次我們向文件寫(xiě)入時(shí),在我們發(fā)送的字符串 $txt 中,第一次包含 "Bill Gates",第二次包含 "Steve Jobs"。在寫(xiě)入完成后,我們使用 fclose() 函數(shù)來(lái)關(guān)閉文件。

如果我們打開(kāi) "newfile.txt" 文件,它應(yīng)該是這樣的:

Bill Gates

Steve Jobs

讀取文件

fread用來(lái)讀取整個(gè)文件,而不用使用while語(yǔ)句進(jìn)行循環(huán),需要注意,第二個(gè)參數(shù)是用來(lái)控制讀取的最大字節(jié)數(shù),這個(gè)參數(shù)是必填的

string fread ( resource $handle , int $length )

執(zhí)行

echo fread($resource, 1024);

可以讀取最大1024個(gè)字節(jié)的文件內(nèi)容

關(guān)閉文件

fclose() 函數(shù)用于關(guān)閉打開(kāi)的文件:

<?php
 $file = fopen("test.txt","r");
 
 //執(zhí)行一些代碼
 
 fclose($file);
 ?>

檢測(cè)文件末尾(EOF)

feof() 函數(shù)檢測(cè)是否已到達(dá)文件末尾(EOF)。

在循環(huán)遍歷未知長(zhǎng)度的數(shù)據(jù)時(shí),feof() 函數(shù)很有用。

注釋?zhuān)涸?w 、a 和 x 模式下,您無(wú)法讀取打開(kāi)的文件!

if (feof($file)) echo "文件結(jié)尾";

逐行讀取文件

fgets() 函數(shù)用于從文件中逐行讀取文件。

注釋?zhuān)涸谡{(diào)用該函數(shù)之后,文件指針會(huì)移動(dòng)到下一行。

實(shí)例

下面的實(shí)例逐行讀取文件,直到文件末尾為止:

<?php
 $file = fopen("welcome.txt", "r") or exit("無(wú)法打開(kāi)文件!");
 // 讀取文件每一行,直到文件結(jié)尾
 while(!feof($file))
 {
     echo fgets($file). "<br>";
 }
 fclose($file);
 ?>

逐字符讀取文件

fgetc() 函數(shù)用于從文件中逐字符地讀取文件。

注釋?zhuān)涸谡{(diào)用該函數(shù)之后,文件指針會(huì)移動(dòng)到下一個(gè)字符。

實(shí)例

下面的實(shí)例逐字符地讀取文件,直到文件末尾為止:

<?php
 $file=fopen("welcome.txt","r") or exit("無(wú)法打開(kāi)文件!");
 while (!feof($file))
 {
     echo fgetc($file);
 }
 fclose($file);
 ?>

file_put_contents

無(wú)論是讀還是寫(xiě),fopen和fclose都是很繁瑣的調(diào)用,從PHP5開(kāi)始,引入了新的函數(shù)

int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )

file_put_contents 相當(dāng)于執(zhí)行了 fopen + fwrite + fclose

file_put_contents('file', "hello world\n");

file_put_contents('file', "hello world\n", FILE_APPEND);

file_get_contents

string file_get_contents ( string $filename [, bool $use_include_path = false [, resource$context [, int $offset = -1 [, int $maxlen ]]]] )

 file_get_contents 相當(dāng)于執(zhí)行了 fopen + fread + fclose

echo file_get_contents('file');

其他文件操作函數(shù)

S  file_exists 將文件地址作為參數(shù)傳入,可以判斷文件是否存在,然后true或者false

S  filesize 可以返回參數(shù)中文件的大小,以字節(jié)為單位

S  unlink 可以刪除傳遞給它的文件地址所代表的文件


PHP Filesystem 參考手冊(cè)

如需查看 PHP 文件系統(tǒng)函數(shù)的完整參考手冊(cè),請(qǐng)?jiān)L問(wèn)我們的PHP Filesystem 參考手冊(cè)。


Weiter lernen
||
<html> <body> <?php $file=fopen("welcome.txt","r"); ?> </body> </html>
einreichenCode zurücksetzen