Php用“隐形字符”替换字符串(\ n)

时间:2011-10-18 12:15:18

标签: php replace textarea

我从db那里得到这样的文字。

{br}{/br}hello!{br}{/br}

此文本在textarea元素内输出。

我需要的是用不可见的char '{br}{/br}'替换所有'\n',这应该在textarea本身设置一个输入空间。希望:))

我试图做的是。

$text = str_replace('{br}','\n',$text);
        $text = str_replace('{/br}','\n',$text);

然后在textarea中输出$text,但字符\n可见:|

3 个答案:

答案 0 :(得分:2)

使用带有双引号"\n"的{​​{3}}将其解释为换行符;带引号的'\n'是一个字面反斜杠,后面跟n

$text = str_replace('{br}{/br}', "\n", $text);

我不确定您为什么要为str_replace拨打{br}一次,为{/br}拨打一次。您是否希望每对{br}{/br}被两条新线替换?如果是这样,你可以通过一次通话更简单地做到这一点:

$text = str_replace('{br}{/br}', "\n\n", $text);

答案 1 :(得分:1)

您需要将\n放在双引号中,而不是单引号。变量和转义序列不用单引号进行插值。此外,您可能希望用一个新行替换整个字符串{br}{/br} - 使用您已完成的操作,您将用两个替换它。

所以:

$text = str_replace('{br}{/br}',"\n",$text);

可能是你想要的。您可能值得阅读this,因此您知道在PHP中您可以/不能使用字符串。

答案 2 :(得分:1)

尝试使用双引号

$text = str_replace('{/br}', "\n", $text);