- //檔案的基本操作
- //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("開啟".$fileName."檔案失敗");
- 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."
";
- //從檔案中讀取全部內容存入到一個變數中,每次讀取一部分,迴圈讀取
- /* $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."
";
- //另一種方法讀取檔案的全部內容,比上面的效能要好的多
- echo file_get_contents("data.txt");
- $f5_handle=fopen("data.txt","r") or die("檔案開啟失敗");
- while(!feof($f5_handle)){
- //判斷指標是否到檔案結尾
- $buffer=fgets($f5_handle);
- //每次從檔案中讀取一行
- echo $buffer."
";
- }
- fclose($f5_handle);
- $f6_handle=fopen("data.txt","r") or die("檔案開啟失敗");
- while(!feof($f6_handle)){
- //判斷指標是否到檔案結尾
- $buffer=fgetc($f6_handle);
- //每次從檔案中讀取一個字元
- echo $buffer."
";
- }
- 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>/",$ws_line,$res)){
- //使用正則匹配網站的標題
- $title=$res[1];
- break;
- }
- }
- fclose($ws_file);
- echo $title."
";
- //移動檔案的指標
- //ftell()
- 返回指標的當前位置
- //fseek()
- 移動指標到指定的位置
- //rewind()
- 移動指標到檔案的開頭
- $fp=fopen("data.txt","r") or die("檔案開啟失敗");
- //用唯讀方式開啟檔案
- echo ftell($fp)."
";
- //輸出剛開啟檔案時的指標的位置,預設是0
- echo fread($fp,10)."
";
- //讀取檔案的前10個字元,檔案指標發生了改變
- echo ftell($fp)."
";
- //讀取檔案的10個字元後,檔案的指標到了10的位置
- fseek($fp,30,SEEK_CUR);
- //將檔案的指標向後移動30個字元
- echo ftell($fp)."
";
- //檔案移動30個字元後,到了40的位置
- echo fread($fp,10)."
";
- //讀取40到50之間的字元,指標會到50
- fseek($fp,-10,SEEK_END);
- //將指標設定到檔案倒數第10的位置
- echo fread($fp,10)."
";
- //輸出檔案最後10個字元
- rewind($fp);
- //將檔案指標設定到檔案的開頭
- echo ftell($fp);
- //檔案的指標又回到了開頭,所以會輸出0
- fclose($fp);
- ?>
複製代碼
|