php中文件操作介紹
原創
马天翼
2020-02-24 01:52
<?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);
?>