我有一個文本文件,其中的文字字符串\r\n
。我想用實際換行符(\ n)替換它。問題替換字符串 r n在PHP中換行
我知道正則表達式/\\r\\n/
應該匹配它(我已經在Reggy中測試過它),但我無法讓它在PHP中工作。
我曾嘗試以下變化:
preg_replace("/\\\\r\\\\n/", "\n", $line);
preg_replace("/\\\\[r]\\\\[n]/", "\n", $line);
preg_replace("/[\\\\][r][\\\\][n]/", "\n", $line);
preg_replace("/[\\\\]r[\\\\]n/", "\n", $line);
如果我只是嘗試更換反斜槓,它工作正常。只要我添加一個r,它就會發現沒有匹配。
我正在閱讀的文件被編碼爲UTF-16。
編輯:
我也已經在使用str_replace()
嘗試。
我現在認爲這裏的問題是文件的字符編碼。我試了下面,它確實工作:
$testString = "\\r\\n";
echo preg_replace("/\\\\r\\\\n/", "\n", $testString);
但它不工作我從我的文件中讀取的行。
完美運作。謝謝!另外,你能告訴我你在哪裏得到了UTF-16的字節值嗎?我之前搜索時找不到它。 – Katfish
如果忽略代理對,UTF-16只需要'U + abcd'並將其編碼爲2個字節'\ xab \ xcd'。這些代碼就是反斜槓(x5c),'r'(x72)和'n'(x6e)的ASCII字節。 0x0a是你想替換它們的換行符 – Cal