智能替换换行符

问题描述 投票:4回答:2

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

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

php smarty
2个回答
8
投票

如果可以尝试,请尝试:

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

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换行符只是回车符,因此需要做更多的调整,但实际上可能已经不存在了。

© www.soinside.com 2019 - 2024. All rights reserved.