12.3.3 文件的內容操作

12.3.3 文件的內容操作

寫入文件

fwrite -- 寫入文件(可安全用于二進制文件)
語法:int fwrite ( resource handle, string string [, int length] )
fwrite() 把 string 的內容寫入 文件指針 handle 處。 如果指定了 length,當寫入了 length 個字節(jié)或者寫完了 string 以后,寫入就會停止,視乎先碰到哪種情況。
返回寫入的字符數(shù),出現(xiàn)錯誤時則返回 FALSE 。

讀取文件內容

05.png

移動文件指針

ftell -- 返回文件指針讀/寫的位置
語法:int ftell ( resource handle )
返回由 handle 指定的文件指針的位置,也就是文件流中的偏移量。 如果出錯,返回 FALSE。文件指針必須是有效的,且必須指向一個通過 fopen()或 popen()成功打開的文件。
fseek -- 在文件指針中定位
語法:int fseek ( resource handle,int offset [,int whence] )
在與 handle 關聯(lián)的文件中設定文件指針位置。新位置,從文件頭開始以字節(jié)數(shù)度量,是以 whence 指定的位置加上 offset。whence 的值定義為:
SEEK_SET - 設定位置等于 offset 字節(jié)。
SEEK_CUR - 設定位置為當前位置加上 offset。
SEEK_END - 設定位置為文件尾加上 offset。(要移動到文件尾之前的位置,需要給 offset 傳遞一個負值。)
如果 沒有指定 whence,默認為 SEEK_SET。
成功則返回 0;否則返回 -1。注意移動到 EOF 之后的位置不算錯誤

rewind -- 倒回文件指針的位置
語法:bool rewind ( resource handle )
將 handle 的文件位置指針設為文件流的開頭。 如果成功則返回 TRUE,失敗則返回 FALSE。 文件指針必須合法,并且指向由 fopen() 成功打開的文件。

<?php
    //以只讀模式打開文件
    $fp = fopen('data.txt', 'r') or die("文件打開失敗");  
    
    echo ftell($fp)."<br>";         //輸出剛打開文件指針默認位置,指針在文件開頭位置為0
    echo fread($fp, 10)."<br>";//讀取文件中的前10個字符輸出,指針位置發(fā)生了變化
    echo ftell($fp)."<br>";         //讀取文件前10個字符后,指針移動位置在第10個字節(jié)處
    
    fseek($fp, 100, SEEK_CUR); //將文件指針的位置,由當前位置向后移動100個字節(jié)數(shù)
    echo ftell($fp)."<br>";         //文件位置在110個字節(jié)處
    echo fread($fp, 10)."<br>"; //讀取110到120字節(jié)數(shù)位置的字串,讀取后指針位置為120
    
    fseek($fp, -10, SEEK_END);   //又將指針移動到倒數(shù)10個字節(jié)位置處
    echo fread($fp, 10)."<br>";     //輸出文件中最后10個字符  
    
    rewind($fp);                       //又移動文件指針到文件的開頭
    echo ftell($fp)."<br>";        //指針在文件的開頭位置,輸出0
    
    fclose($fp);                        //關閉文件資源

demo.txt

www.lampbrother.net
www.lampbrother.net
www.lampbrother.net
www.lampbrother.com
hello world
hello world

fgetc.php

<?php
/*
 *  fopen("位置URL", "r+");
 *
 *
 *
 */

//打開
$fp = fopen("demo.txt", "r");

while(!feof($fp)){
    echo fgetc($fp);

}

//關閉
fclose($fp);

fgets.php

<?php
/*
 *  fopen("位置URL", "r+");
 *
 *
 *
 */

//打開
$fp = fopen("demo.txt", "r");

while(!feof($fp)) {
    echo fgets($fp)."<br>";
}

//關閉
fclose($fp);

fread.php

<?php
/*
 *  fopen("位置URL", "r+");
 *
 *
 *
 */

//打開
$fp = fopen("demo.txt", "r");


//echo fread($fp, filesize("demo.txt"));

while(!feof($fp)) {
    echo fread($fp, 1024);
}

//關閉
fclose($fp);

ftell.php

<?php
/*
 *  fopen("位置URL", "r+");
 *
 *   
 *
 */

//打開
$fp = fopen("demo.txt", "r");

echo ftell($fp)."<br>";
fseek($fp, 4);
echo ftell($fp)."<br>";
echo fread($fp, 11)."<br>";
echo ftell($fp)."<br>";
fseek($fp, -3, SEEK_END);
echo fread($fp, 3);
rewind($fp);
echo ftell($fp)."<br>";


//關閉
fclose($fp);

fwrite.php

<?php
/*
 *  fopen("位置URL", "r+");
 *
 *
 *
 */

//打開
$fp = fopen("demo.txt", "a");


fwrite($fp, "www.lampbrother.net\n");

//關閉
fclose($fp);

test.php

<?php
/*
 *  fopen("位置URL", "r+");
 *
 *   
 *
 */

//打開
$fp = fopen("demo.txt", "a");

rewind($fp);
echo ftell($fp)."<br>";

fwrite($fp, "hello world\n");

//關閉
fclose($fp);

tmp.txt

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1、文件處理流程 文件處理流程:寫入文件流程: 打開文件,文件不存在就創(chuàng)建; 將數(shù)據(jù)寫入文件; 關閉文件。讀文件流...
    ManZb閱讀 483評論 0 0
  • C/C++輸入輸出流總結 前兩天寫C++實習作業(yè),突然發(fā)現(xiàn)I/O是那么的陌生,打了好長時間的文件都沒有打開,今天終...
    LuckTime閱讀 1,752評論 0 6
  • 老婆,你看看 帥氣的小伙子! 我們一路走來!
    張彥_962a閱讀 258評論 0 0
  • 很久沒有動手寫非專業(yè)的文字,碼的這篇可能會干澀生硬了。有閑心寫一篇還是因為一個人的結果,碼字對于我來說是件寂寞才想...
    Louirose閱讀 414評論 0 0
  • The Dangers of Bringing North Korea to Its Knees 朝鮮問題 The...
    billliu_0d62閱讀 150評論 0 0