fopen()寫檔案內容的跨系統換行倒底如何做

來源:互聯網
上載者:User
fopen()寫檔案內容的跨系統換行倒底怎麼做?
我是新手,想用fopen()寫內容到檔案中。

一下是php官網上的說明:
-----------------------------------------------------------
Note:

不同的作業系統家族具有不同的行結束習慣。當寫入一個文字檔並想插入一個新行時,需要使用符合作業系統的行結束符號。基於 Unix 的系統使用 \n 作為行結束字元,基於 Windows 的系統使用 \r\n 作為行結束字元,基於 Macintosh 的系統使用 \r 作為行結束字元。

如果寫入檔案時使用了錯誤的行結束符號,則其它應用程式開啟這些檔案時可能會表現得很怪異。

Windows 下提供了一個文本轉換標記('t')可以透明地將 \n 轉換為 \r\n。與此對應還可以使用 'b' 來強制使用二進位模式,這樣就不會轉換資料。要使用這些標記,要麼用 'b' 或者用 't' 作為 mode 參數的最後一個字元。

預設的轉換模式依賴於 SAPI 和所使用的 PHP 版本,因此為了便於移植鼓勵總是指定恰當的標記。如果是操作純文字檔案並在指令碼中使用了 \n 作為行結束符,但還要期望這些檔案可以被其它應用程式例如 Notepad 讀取,則在 mode 中使用 't'。在所有其它情況下使用 'b'。

在操作二進位檔案時如果沒有指定 'b' 標記,可能會碰到一些奇怪的問題,包括壞掉的圖片檔案以及關於 \r\n 字元的奇怪問題。
-----------------------------------------------------------
Note:

為移植性考慮,強烈建議在用 fopen() 開啟檔案時總是使用 'b' 標記。
-----------------------------------------------------------
Note:

再一次,為移植性考慮,強烈建議你重寫那些依賴於 't' 模式的代碼使其使用正確的行結束符並改成 'b' 模式。
-----------------------------------------------------------

上面是官網上的注意事項。

[b]我就不懂了,倒底應該用什麼模式,既然不推薦用t模式,可是b模式下,windows的notepad還是認不出換行來。。。[/b]

請高手指教!

------解決方案--------------------
PHP code
$file = fopen("test.txt","wb");echo fwrite($file,"Hello World. Testing!\r\nIt is name is FFFF");fclose($file);
------解決方案--------------------

PHP_EOL
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.