php中file()函數與fgets()函數的共同與不同

來源:互聯網
上載者:User
最近寫php代碼需從文字檔讀取文本行(文字檔是ANSI字元集)

php的2個內建函數 file 和 fgets 可以實現這個功能

file — 把整個檔案讀入一個數組中

fgets — 從檔案指標中讀取一行

共同點:二者讀取的每一個文本行末尾都包含一個分行符號(讀取使用ANSI字元集的文本這兩個字元各佔一個位元組,若把文字檔轉換成utf-8字元集則結果不同,未測試);

不同點:以上說的是分行符號以 \n輸入,若換行以\r\n輸入,那麼file會讀入\r\n,fgets會處理掉\r保留\n,\r與\n用ord()函數顯示出的ascii碼值分別是13與10。

以上都使用ANSI字元集文本測試。

用fwrite()往文字檔寫入時有個奇怪的現象, fopen()用‘wt’開啟,寫入“\r\n”後,用16進位編輯器開啟文字檔會發現換行處代碼為cr cr lf(\r\r\n),而用‘w’方式開啟則正常“\r\n”。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.