国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

PHP文件處理

PHP?文件處理


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

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

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

?????? 記錄錯(cuò)誤日志

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

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

寫文件

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

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

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

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

打開文件

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

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

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

文件可能通過下列模式來打開:

QQ圖片20161009145912.png

注釋:如果 fopen() 函數(shù)無法打開指定文件,則返回 0 (false)。

實(shí)例

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

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

?寫入文件

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

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

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

當(dāng)寫入成功后,fwrite會(huì)返回寫入的字符數(shù),如果寫入失敗則返回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" 寫了兩次。在每次我們向文件寫入時(shí),在我們發(fā)送的字符串 $txt 中,第一次包含 "Bill Gates",第二次包含 "Steve Jobs"。在寫入完成后,我們使用 fclose() 函數(shù)來關(guān)閉文件。

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

Bill Gates

Steve Jobs

讀取文件

fread用來讀取整個(gè)文件,而不用使用while語句進(jìn)行循環(huán),需要注意,第二個(gè)參數(shù)是用來控制讀取的最大字節(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)閉打開的文件:

<?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ù)很有用。

注釋:在 w 、a 和 x 模式下,您無法讀取打開的文件!

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

逐行讀取文件

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

注釋:在調(diào)用該函數(shù)之后,文件指針會(huì)移動(dòng)到下一行。

實(shí)例

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

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

逐字符讀取文件

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

注釋:在調(diào)用該函數(shù)之后,文件指針會(huì)移動(dòng)到下一個(gè)字符。

實(shí)例

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

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

file_put_contents

無論是讀還是寫,fopen和fclose都是很繁瑣的調(diào)用,從PHP5開始,引入了新的函數(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?worldn");

file_put_contents('file',?"hello?worldn",?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問我們的PHP Filesystem 參考手冊(cè)。


繼續(xù)學(xué)習(xí)
||
<html> <body> <?php $file=fopen("welcome.txt","r"); ?> </body> </html>
提交重置代碼