Skip to content

林豬豬

個人文章或筆記

Menu
  • 首頁
  • PHP
  • MariaDB
  • Mac
  • Windows
  • Java Servlet
  • 軟體設計
  • 其他
Menu

關於PHP儲存與取出資料

Posted on 2023 年 3 月 1 日
儲存與取出資料:
 開啟檔案:
  使用fopen()函式開啟檔案。
  fopen()提供三種選項的組合。
  $fp = fopen("$document_root/../orders/orders.txt",'w');
   r = 開啟檔案來讀取,從檔案的開頭開始。r+ =開啟檔案來讀取與寫入,從檔案的開頭開始。
   w = 打開檔案來寫入 w+ = 存在則刪除既有內容,不存在則建立它。
   x = 謹慎寫入,如果檔案存在則不會被開啟,會傳回false與產生警告。w+ = 開啟檔案來寫入與讀取,從檔案的開頭開始。如果檔案存在他將不會被開啟。
   a = 開啟檔案來附加寫入內容,從既有的內容結尾處開始,如果檔案不存在則試著建立它。 a+ = 開啟檔案來寫入與讀取,從既有的內容結尾處開始,如果檔案不存在則試著建立它。
   b = 二進位:與其中一種模式一起使用。如果你的檔案系統會區分二進位與文字檔,應該優先使用這種模式。
   t = 文字:與其中一種模式一起使用。這模式只能在windows系統中選擇。除非你已移植程式碼,要與b選項一起使用,否則不建議使用。
  $fp = fopen("$document_root/../orders/orders.txt",'ab');
  第三個為選用參數,用於在Apache PHP MySQL中搜尋檔案用,使用時請將此參數改為true。
  透過FTP或HTTP來開始檔案
   開啟php.ini內的功能:allow_url_fopen
   可以使用ftp://開頭的檔案。如果檔名開頭是http://他會開啟一個HTTP連結。
  Unix會有檔案權限問題:
   輸入以下指令來建立一個可供群組寫入的目錄,在裡面儲存訂單。
   mkdir path/to/orders
   chgrp apache path/to/orders
   chmod 775 path/to/order
  請注意檔案安全性問題,給予權限的檔案可供Web使用者寫入會變得非常危險。
 寫入檔案:
  使用fputs()與fwrite()來寫入。
  fwrite()可接收三個參數:resource handle, string [, int length]而length為寫入的最大byte數,若指定最大byte數,超過大小則會停止寫入。你可以使用strlen()來取得字串長度。
  將$outputstring裡面的字串寫入至$fp所指的檔案:
   fwrite($fp,$outputstring);
  另一種替代fwrite的是file_put_contents()此種方式可不必使用fopen()與fwrite()
  將data裡面的資料寫至名為filename的檔案中:
   int file_put_contents(string filename,mixed data[,int flags[,resource context]]);
 關閉檔案:
  檔案使用完畢可使用fclose()來關閉它。
  fclose($fp);//關閉成功回傳true失敗回傳flase
 讀取檔案:
  $fp = fopen("$document_root/../orders/orders.txt",'rb');
 如何得知讀取至結尾:
  if(feof($fp))或者利用迴圈寫入while(!feof($fp))...
 一次讀取一行:
  fgets(),fgetss(),fgetcsv()
  $order = fgets($fp);//會持續讀取直到碰到\n換行字元為止。當你處理純文字檔案時,很適合用此函式。
  fgetss()可進一步將包住字串的PHP與HTML標籤移除。避免惡意使用者製造安全問題。
 讀取整個檔案:readfile(),fpassthru(),file(),file_get_contents()
 讀取字元:fgetc()
 讀取任意長度:fread()
 使用其他的檔案函式
  檢查檔案是否存在file_exists()
  確定檔大小filesize()
  刪除檔案unlink()
  巡覽檔案內容rewind(),fseek(),ftell()
  鎖定檔案flock()可避免兩個fopen同時操作一個檔案。

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

彙整

  • 2024 年 1 月
  • 2023 年 11 月
  • 2023 年 9 月
  • 2023 年 6 月
  • 2023 年 5 月
  • 2023 年 3 月
  • 2023 年 2 月
  • 2022 年 10 月
  • 2022 年 9 月
  • 2022 年 8 月
  • 2022 年 6 月

近期文章

  • 資料控制語言DLC
  • 資料定義語言DDL
  • Laravel身份認證與Passport身分驗證套件
  • RollBack回到交易機制啟動前的狀態
  • 刪除DELETE

近期留言

  1. 「WordPress 示範留言者」於〈網站第一篇文章〉發佈留言

豬豬説:那些你所逃避的,會在你需要的時候回來賞你一巴掌。

  • GitHub
  • Instagram
  • Mail
©2025 林豬豬 | Design: Newspaperly WordPress Theme