2013年12月13日 星期五

用 PHP 讀取、寫入檔案

我們常常會需要用到寫檔 / 讀檔的功能,那在 PHP 中要怎麼實作呢? 最基本的方式就是使用 fopen 了,那我們先來看看以下基本範例吧!

一. 寫檔:
  1. <?php

  2. $data = array();
  3. for ( $i=1; $i<=10; $i++ ) {
  4. $data[] = "Item {$i}";
  5. }  //  for
  6. $fo = fopen( 'output.txt', 'w' );
  7. fwrite( $fo, join("\r\n", $data) );
  8. fclose( $fo );

  9. ?>
若只是做單純的寫檔動作其實可以使用以下程式碼(只需一行 Code):
file_put_contents( "output.txt", $data );


二. 讀檔:
  1. <?php

  2. $filename = "output.txt";
  3. $result = array();
  4. if ( file_exists($filename) ) {
  5. $file = fopen( $filename, "r" );
  6. if ( $file != NULL ) {
  7. while ( !feof($file) ) {
  8. $result[] = fgets( $file );  //  fgets一次抓一行
  9. }  //  while 
  10. fclose( $file );
  11. }  //  if  判斷檔案內容是否為空
  12. }  //  判斷是否有該檔案
  13. echo join("</br>", $result);

  14. ?>
若只是做單純的讀檔(直接把內容串成一個字串)動作其實可以使用以下程式碼(只需一行 Code):
file_get_contents( $filename );  //  記得用變數接


最後附上 fopen 所傳入的第二個參數說明:

參數 功用
r 讀取檔案,從檔案開頭開始
r+                                供讀取及寫入檔案,從檔案開頭開始
w 寫入檔案(覆寫)
w+ 供讀取及寫入檔案(覆寫)
x 開啟檔案並寫入,假如檔案已存在,fopen 會回傳 false
x+ 開啟檔案,並供讀取及寫入,假如檔案已存在,fopen 會回傳 false
a 新增內容在目前已有的檔案內容之後
a+ 供新增及讀取內容,接續在目前已有的內容之後開始寫入

沒有留言:

張貼留言