php中文件操作介紹

<?php

header("Content-Type:text/html;charset=utf-8");

//例子用於介紹php中基本的文件操作

//下面是得到網站的根目錄

echo $_SERVER['DOCUMENT_ROOT'];

//下面是fopen,打開文件以追加a和二進制b的模式,另外還有隻讀r、只寫w、謹慎寫x模式

$fq=fopen("{$_SERVER['DOCUMENT_ROOT']}/myexp/exp02file.txt",'ab');

//下面是向該文件中追加內容

fwrite($fq,"the first write\n");

//另外一種寫入方法file_put_contents(string filename,string data)  這種方法不用打開文件就能直接寫入

//這種模式直接重寫,想追加就加上FILE_APPEND參數

file_put_contents("exp02file.txt","the second write\n");

//下面的模式是可以追加

file_put_contents("exp02file.txt","the third write\n",FILE_APPEND);

fclose($fq);

//下面介紹讀取文件的函數

$fq=fopen("exp02rf.txt",'rb');

//判斷文件是否讀完feof函數

while(!feof($fq))

{

    //下面是用fgets(file,size)讀取,該函數的特點是一次讀一行,讀取結束的標誌爲讀取了size-1大小或者讀取了\n或者讀取了EOF

    $content=fgets($fq,1000);

    echo $content;

}

//文件定位函數rewind(file) 復位到文件開始位置

rewind($fq);

while(!feof($fq))

{

    //fgetss也可以用於讀,不過該函數的作用是可以過濾掉html以及php標記,另外它還有第三個參數,可以設置過濾規則!!!

    $content=fgetss($fq,1000);

    echo $content;

}

fclose($fq);

//rewind($fq);

$fq=fopen("exp02rf1.txt",'rb');

while(!feof($fq))

{

    //fgetcsv(file,size,"\t"),該用於讀取的函數的強大之處在於可以在規定字符處進行分行!!下面我用另一個文件做實驗 但返回的是數組

    $content=fgetcsv($fq,100,"\t");

    print_r($content);

    echo "\n";

}

fclose($fq);

//下面介紹讀取整個文件readfile函數

readfile("exp02file.txt");

//fpassthru($fq)需要先打開文件然後傳遞文件指針 就不介紹了

//file(stirng filename) 該函數把每一行作爲數組元素返回到一個數組中  也不做具體實例

//file_get_contents(filename)  該函數強大之處在於可以把文件內容返回到一個字符串中,不在屏幕上顯示

echo $content;

//fgetc可以一次讀取一個字符 強大之處在於可以邊讀取邊過濾字符

$fq=fopen("exp02file.txt",'rb');

//下面我們把文件中所有小寫字母輸出

while(!feof($fq))

{

    $alphet=fgetc($fq);

    if($alphet>='a'&&$alphet<='z')

    echo $alphet;

}

fclose($fq);

//下面是fread(string filename,size)函數讀取任意長度,不列舉介紹了

//下面是查看文件是否存在的函file_exists(filename)

if(file_exists("exp02file.txt"))

{

    echo "太好了!文件exp02file.txt存在!!!";

}

else

{

    echo "很抱歉!文件exp02file.txt不存在!!";

}

//確定文件大小,返回以大小以字節單位  filesize(string filename)

//刪除文件 unlink(string filename)

//文件定位的三種

//1、已經介紹的rewind($fq) 回到文件頭

//2、 ftell($fq) 返回當前位置距離開頭的字節數

//3、 fseek($fq,offset) 默認情況爲從文件開頭移動offset字節 還有第三個參數可以設置初始位置 包括初始位置SEEK_SET 當前位置SEEK_CUR 結束位置SEEK_END

//本身這種函數開銷都是很大的,少用爲妙

//還有一種函數是文件鎖定與解鎖,這是用於文件被併發使用時。非常有用,舉個例子

$fp=fopen("exp02file.txt",'ab');

flock($fp,LOCK_EX);

fwrite($fp,"i am using it");

flock($fp,LOCK_UN);

fclose($fp);

?>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章