2016-03-14 73 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