$str = str_replace(array("\r\n", "\r", "\n"), "", $str);
順序重要:先替換 \r\n,再單獨替換 \r、\n,避免重複處理。
$str = preg_replace('/\s*/', '', $str); // 同時去除所有空白字符(含換行、制表、空格)
副作用:會連同空格一起刪除,視場景而定。
$str = str_replace(PHP_EOL, '', $str);
PHP_EOL 自動適配運行環境:Windows \r\n、Linux \n、Mac \r(舊版)。
function get_crlf() {
if (stristr($_SERVER['HTTP_USER_AGENT'], 'Win')) return "\r\n";
elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'Mac')) return "\r";
else return "\n";
}
不可靠:UA 可偽造,且服務器端換行符應統一規範,不應依賴客戶端。
$text = str_replace('\n', '', $text); // 無效:單引號不解析轉義字符,字面匹配反斜杠+n
$text = str_replace("\n", '', $text); // 有效:雙引號解析為換行符
echo nl2br($str); // 將 \n 轉為 <br /> 輸出
$order = array("\r\n", "\n", "\r");
$text = str_replace($order, '', $text);