PHP 中的換行問題:克服尾隨換行符
在PHP 中使用fwrite() 和'w' 模式寫入檔案時,意外的換行符附加到輸出中是很常見的。所提供的程式碼就是這種情況,其中“n”旨在創建換行符,但顯示為字串。
n 困境
背後的原因這種特殊的行為在於所使用的轉義序列。預設情況下,單引號字串將“n”視為文字反斜線後跟字母“n”,而不是換行符。要修正這個問題,需要使用雙引號字串並使用“n”正確轉義換行符。
Windows 和 Unix 行結尾
另一個需要考慮的面向是行結束符號。不同的作業系統使用不同的行結尾約定:
為了確保正確的行結束處理,建議以二進位模式開啟文件,這樣可以在不進行任何行結束轉換的情況下寫入原始資料。這涉及使用 '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中文網其他相關文章!