首頁  >  文章  >  後端開發  >  為什麼在 PHP 中寫入檔案時會出現尾隨換行符號?

為什麼在 PHP 中寫入檔案時會出現尾隨換行符號?

Susan Sarandon
Susan Sarandon原創
2024-11-11 12:49:02794瀏覽

Why Am I Getting Trailing Newlines When Writing to a File in PHP?

PHP 中的換行問題:克服尾隨換行符

在PHP 中使用fwrite() 和'w' 模式寫入檔案時,意外的換行符附加到輸出中是很常見的。所提供的程式碼就是這種情況,其中“n”旨在創建換行符,但顯示為字串。

n 困境

背後的原因這種特殊的行為在於所使用的轉義序列。預設情況下,單引號字串將“n”視為文字反斜線後跟字母“n”,而不是換行符。要修正這個問題,需要使用雙引號字串並使用“n”正確轉義換行符。

Windows 和 Unix 行結尾

另一個需要考慮的面向是行結束符號。不同的作業系統使用不同的行結尾約定:

  • Windows:「rn」(回車符後跟換行符)
  • 基於Unix 的系統(包括Linux 和macOS): 「n " (僅限換行符)

為了確保正確的行結束處理,建議以二進位模式開啟文件,這樣可以在不進行任何行結束轉換的情況下寫入原始資料。這涉及使用 'wb' 作為 fopen() 的第二個參數。

更新的程式碼:

透過實作這些修復,下面修改後的程式碼成功寫入每個gem ID在新行上沒有任何無關字元:

$i = 0;
$file = fopen('ids.txt', 'wb');
foreach ($gemList as $gem)
{
    fwrite($file, $gem->getAttribute('id') . "\n");
    $gemIDs[$i] = $gem->getAttribute('id');
    $i++;
}
fclose($file);

以上是為什麼在 PHP 中寫入檔案時會出現尾隨換行符號?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn