PHP檔案操作之讀寫____PHP

來源:互聯網
上載者:User

PHP中對檔案的操作:建立、讀取、上傳、編輯。 PHP提過了多種相關的函數。 1、readfile()

int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )

參數: filename:檔案名稱; use_include_path:是否也在include_path中搜尋檔案; context:規定檔案控制代碼的環境。Context 是可以修改流的行為的一套選項。

傳回值:返回從檔案中讀入的位元組數。如果出錯返回 FALSE 並且除非是以 @readfile() 形式調用,否則會顯示錯誤資訊。
樣本:
1.php和new.txt在同一個檔案夾

1.php內容:

<?phpecho @readfile("new.txt");?>

new.txt內容:

It's a new file.

運行1.php結果:

It's a new file.16 2、fopen()

resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )

參數: filename:如果 filename 是 “scheme://…” 的格式,則被當成一個 URL,PHP 將搜尋協議處理器(也被稱為封裝協議)來處理此模式。如果該協議尚未註冊封裝協議,PHP 將發出一條訊息來協助檢查指令碼中潛在的問題並將 filename 當成一個普通的檔案名稱繼續執行下去。; mode:指定了所要求到該流的訪問類型; use_include_path:是否也在include_path中搜尋檔案; context:規定檔案控制代碼的環境。Context 是可以修改流的行為的一套選項。

傳回值:
成功時返回檔案指標資源,如果開啟失敗,本函數返回 FALSE
註:檔案訪問類型表

mode 說明
“r” 唯讀方式開啟,將檔案指標指向檔案頭
“r+” 讀寫方式開啟,將檔案指標指向檔案頭
“w” 寫入方式開啟,將檔案指標指向檔案頭並將檔案大小截為零。如果檔案不存在則嘗試建立之。
“w+” 讀寫方式開啟,將檔案指標指向檔案頭並將檔案大小截為零。如果檔案不存在則嘗試建立之。
“a” 寫入方式開啟,將檔案指標指向檔案末尾。如果檔案不存在則嘗試建立之。
“a+” 讀寫方式開啟,將檔案指標指向檔案末尾。如果檔案不存在則嘗試建立之。
“x” 建立並以寫入方式開啟,將檔案指標指向檔案頭。如果檔案已存在,則 fopen() 調用失敗並返回 FALSE,並產生一條 E_WARNING 層級的錯誤資訊。如果檔案不存在則嘗試建立之。這和給底層的 open(2) 系統調用指定 O_EXCL
“x+” 建立並以讀寫方式開啟,將檔案指標指向檔案頭。如果檔案已存在,則 fopen() 調用失敗並返回 FALSE,並產生一條 E_WARNING 層級的錯誤資訊。如果檔案不存在則嘗試建立之。這和給底層的 open(2) 系統調用指定 O_EXCL
3、fread()

string fread ( resource $handle , int $length )
從檔案指標 handle 讀取最多 length 個位元組

參數: head:檔案系統指標,是典型地由 fopen() 建立的 resource(資源); length:最多讀取 length 個位元組。

傳回值:
返回所讀取的字串, 或者在失敗時返回 FALSE。 4、fclose()

bool fclose ( resource $handle )
將指定檔案關閉(好習慣,減少伺服器資源佔用)。檔案指標必須有效,並且是通過 fopen() 或 fsockopen() 成功開啟的。 5、fgets()

string fgets ( resource $handle [, int $length ] )
從檔案中讀取一行資料。從 handle 指向的檔案中讀取一行並返回長度最多為 length - 1 位元組的字串。碰到分行符號(包括在傳回值中)、EOF 或者已經讀取了 length - 1 位元組後停止(看先碰到那一種情況)。如果沒有指定 length,則預設為 1K,或者說 1024 位元組。 6、feof()

bool feof ( resource $handle )
測試檔案指標是否到了檔案結束的位置。 7、fgetc()

string fgetc ( resource $handle )
從檔案中讀取單個字元。 8、fwrite()

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

參數: handle:檔案系統指標,是典型地由 fopen() 建立的 resource(資源); string:要寫入的字串; length:如果指定了 length,當寫入了 length 個位元組或者寫完了 string 以後,寫入就會停止,視乎先碰到哪種情況。

傳回值:
fwrite() 返回寫入的字元數,出現錯誤時則返回 FALSE 。 9、一個超級簡單的評論牆

<html><head><title>評論牆</title></head><body><!--評論表單--><form method="post"  action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>">暱稱:<input type="text" name="name"></input><br />評論:<textarea rows='5' cols='19' name="comment"></textarea><br /><input type="submit" name="submit" value="提交"></form><!--儲存評論到檔案--><?php/**檔案的讀寫測試*/if($_SERVER['REQUEST_METHOD']=='POST'){#開啟檔案$fname="D:\\comment.txt";$file=fopen($fname,"a+");#寫入資料$name=@$_POST['name'];$comment=@$_POST['comment'];$str=$name."`".$comment."\r\n";fwrite($file,$str);#關閉檔案fclose($file);}?><!--顯示評論內容--><table cellpadding="4" ><tr><td><b>暱稱</b></td><td><b>評論</b></td></tr><?php$fname="D:\\comment.txt";$file=fopen($fname,"r");while(!feof($file)){    $line=fgets($file);    $arr=explode("`",$line);    echo @"<tr><td>$arr[0]</td><td>$arr[1]</td></tr>";}fclose($file);?></table></body></html>
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.