PHP 文件的基本操作
<?php
//文件的基本操作
//fopen()
打開一個文件
//使用絕對路徑打開一個文件,選擇只讀模式,并返回資源$handle
$handle=fopen("D:/lamp/apache2/htdocs/test/file.txt","r");
//訪問文檔根目錄下的文件,也選擇只讀模式
$handle=fopen($_SERVER['DOCUMENT_ROOT']."/test/file.txt","r");
//打開遠程文件,使用http協議只能以讀的方式打開
$handle=fopen("http://www.wowsai.com","r");
//使用FTP協議打開遠程文件,如果FTP服務器可寫,則可以以寫的模式打開
//$handle=fopen("ftp://user:password@example.com/file.txt",'w');
//fclose()
關閉打開的資源類型
//fwrite()
向文件中寫入內容
$fileName="data.txt";
//聲明一個文件的變量
//用只寫的方式打開文件,沒有則創建,并且在打開失敗時通過程序
$f_handle=fopen("data.txt","w")or die("打開<b>".$fileName."</b>文件失敗");
for($i=0;$i<10;$i++){
//通過一個循環,向文件中添入內容
fwrite($f_handle,"again\n");
}
fclose($f_handle);
//關閉打開的文件
//file_put_contents()
一次將所有數據寫入到指定的文件中
//讀取文件內容
//fread()
讀取打開的文件
//file_get_contents()
將文件讀入字符串
//fgets()
從打開的文件中返回一行
//fgetc()
從打開的文件中返回字符
//file()
把文件讀入一個數組中
//readfile()
讀取一個文件,并輸出到輸出緩沖
//feof()
判斷一個文件指針是否位于文件的結束處
//從文件中讀取指定字節數的內容存入到一個變量中
$fileName2="data.txt";
$f_hand=fopen($fileName2,"r")or die("文件打開失敗");
$contents=fread($f_hand,50);
fclose($f_hand);
echo $contents."<br>";
//從文件中讀取全部內容存入到一個變量中,每次讀取一部分,循環讀取
/* $fileName3="D:/lamp/apache2/icons/link.gif";
//將二進制文件的文件名保存到一個變量中
$f3_handle=fopen($fileName3,"rb")or die("文件打開失敗"); //以只讀的方式打開文件,模式加了"b"
$f3_contents="";
//聲明一個用于保存文件內容的字符串
while(!feof($f3_handle)){
//循環讀取文件中的內容,知道文件結束
$f3_contents.=fread($f3_handle,1024);
//每次讀取1024個字符
}
fclose($f3_handle);
echo $f3_contents; */
//另一種讀取文件全部內容的方法
$fileName4="data.txt";
$f4_handle=fopen($fileName4,"r")or die("文件打開失敗");
$f4_con=fread($f4_handle,filesize($fileName4));
//用filesize獲取文件的長度,這樣來讀取文件的全部內容
fclose($f4_handle);
echo $f4_con."<br>";
//另一種方法讀取文件的全部內容,比上面的性能要好的多
echo file_get_contents("data.txt");
$f5_handle=fopen("data.txt","r") or die("文件打開失敗");
while(!feof($f5_handle)){
//判斷指針是否到文件結尾
$buffer=fgets($f5_handle);
//每次從文件中讀取一行
echo $buffer."<br>";
}
fclose($f5_handle);
$f6_handle=fopen("data.txt","r") or die("文件打開失敗");
while(!feof($f6_handle)){
//判斷指針是否到文件結尾
$buffer=fgetc($f6_handle);
//每次從文件中讀取一個字符
echo $buffer."<br>";
}
fclose($f6_handle);
print_r(file("data.txt"));
//把文件讀入到一個數組中
readfile("data.txt");
//直接將文件中的內容讀出,并輸出到瀏覽器
//訪問遠程文件
確保php.ini中的"allow_url_fopen"是打開的,并且確保遠程文件具有訪問權限
$ws_file=fopen("http://www.wowsai.com","r")or die("遠程文件打開失敗");
//打開遠程文件
while(!feof($ws_file)){
$ws_line=fgets($ws_file);
if(preg_match("/<title>(.*)<\/title>/",$ws_line,$res)){
//使用正則匹配網站的標題
$title=$res[1];
break;
}
}
fclose($ws_file);
echo $title."<br>";
//移動文件的指針
//ftell()
返回指針的當前位置
//fseek()
移動指針到指定的位置
//rewind()
移動指針到文件的開頭
$fp=fopen("data.txt","r") or die("文件打開失敗");
//用只讀方式打開文件
echo ftell($fp)."<br>";
//輸出剛打開文件時的指針的位置,默認是0
echo fread($fp,10)."<br>";
//讀取文件的前10個字符,文件指針發生了改變
echo ftell($fp)."<br>";
//讀取文件的10個字符后,文件的指針到了10的位置
fseek($fp,30,SEEK_CUR);
//將文件的指針向后移動30個字符
echo ftell($fp)."<br>";
//文件移動30個字符后,到了40的位置
echo fread($fp,10)."<br>";
//讀取40到50之間的字符,指針會到50
fseek($fp,-10,SEEK_END);
//將指針設置到文件倒數第10的位置
echo fread($fp,10)."<br>";
//輸出文件最后10個字符
rewind($fp);
//將文件指針設置到文件的開頭
echo ftell($fp);
//文件的指針又回到了開頭,所以會輸出0
fclose($fp);
?>
本文由用戶 mmxn 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!