2016-03-14 69 views
1

我正試圖解決CodeIgniter中的新行問題。當我嘗試打印它像這樣在PHP和CodeIgniter中不使用nl2br進行打印的新行

echo nl2br($ba); 

它不轉換\r\n到一個新行我的變量設置如下

$ba='hi\r\nhello'; 

。搜索了一整天后,我發現,這是因爲我的變量是'"

我還試圖用preg_replace但它同樣

preg_replace("/\r\n|\r|\n/",'<br/>',$ba); 

但我不能改變這個那麼我該如何解決這個問題?

感謝您的幫助。

+0

您嘗試過'$ ba =「hi \ r \ nhello」;'這樣不好嗎? – dgig

+4

爲什麼你不能從'''改爲'''?只是好奇。 – WheatBeak

+0

變量的實際值是來自一些複雜的過程,我不能簡單地改變它... – user3412718

回答

4

"\n"'\n'不一樣!這是你的基本問題。你是不是想取代你認爲你是

"\n"被轉換爲換行或ASCII 13

'\n'是字符\然後n

$ba='hi\r\nhello'; 
$ba=str_replace('\r\n','<br>',$ba); 

echo $ba; // hi<br>hello 

使用普通的字符表達式:

作爲\是一個轉義字符,您需要將它加倍:

$ba=preg_replace('#\\\r\\\n|\\\r|\\\n#','<br/>',$ba);

+0

嗨,thx for reply,但preg_replace('/ \ r \ n | \ r | \ n /','
',$ ba);不工作太... – user3412718

+0

@ user3412718看到更新 – 2016-03-14 22:24:28

+0

感謝差別很大,它的工作... :) – user3412718