聪明的替换换行符

时间:2011-05-21 00:27:31

标签: php smarty

在撰写本文时,smarty.net网站似乎已关闭。

无论如何,如何用smarty变量中的空格替换换行符?是这样的{$var|regex_replace:'[\\r\\n]':'\s'}吗?我尝试了但它没有用。

2 个答案:

答案 0 :(得分:6)

尝试此操作:

{$var|regex_replace:"/[\r\n]/" : " "}

答案 1 :(得分:0)

[\ r \ n]的问题是它将用双重替换替换单个windows crlf。 (如果只输出空格,这不是大问题,但是...)

示例:

{$letter="--\n--\r\n--\r\n\r\n--"}
{$var|regex_replace:"/[\r\n]/":"BR"}
result:
--BR--BRBR--BRBRBRBR--

考虑是否要用html换行符替换换行符;以上将造成混乱。这是预期的工作:

{$var|regex_replace:"/\r*\n/":"<br>"}

(顺便说一句;顺便说一句,如果您考虑使用nl2br;它不会替换换行符,只会在每行中添加一个br-在某些情况下可能是个问题)

现在,经典的Mac换行符只是回车符,因此需要进行更多的调整,但实际上可能已经不存在了。