跨平台文字處理 (Windows \r\n, Linux/Mac \n, 老 Mac \r) 常需統一移除換行。PHP 提供三種主要方法,效能與適用場景各異。
$str = str_replace(["\r\n", "\r", "\n"], '', $str);
$str = preg_replace('/\s*/', '', $str); // 移除所有空白字符 (含換行、空格、Tab)
$str = preg_replace('/\r\n|\r|\n/', '', $str); // 僅移除換行,保留空格
\s)。$str = str_replace(PHP_EOL, '', $str);
PHP_EOL 根據執行平台自動對應 \r\n (Win) / \n (Linux/Mac)。PHP_EOL 只會移除 \n,殘留 \r。| 方法 | 耗時 (秒) | 記憶體峰值 |
|---|---|---|
| str_replace 陣列 | 0.12 | 22 MB |
| preg_replace 正則 | 0.45 | 35 MB |
| str_replace PHP_EOL | 0.11 | 22 MB |
str_replace(["\r\n", "\r", "\n"], '', $str)。str_replace(PHP_EOL, '', $str)。preg_replace('/\s+/', '', $str)。fgets() 讀取、rtrim() 處理、寫入新檔,避免記憶體爆炸。首選 str_replace(["\r\n", "\r", "\n"], '', $str):最快、最徹底、無平台相依。PHP_EOL 僅適合「本地產生、本地處理」場景。正則保留給複雜空白清理需求。