【问题标题】:Php replace strings with "invisible chars" (\n)php 用“不可见字符”替换字符串 (\n)
【发布时间】:2011-10-18 12:15:18
【问题描述】:

我从 db 得到这样的文本。

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

此文本在 textarea 元素中输出。

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

我试图做的是。

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

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

【问题讨论】:

  • /n 将添加换行符,而不是空格(我想这可能是您想要的)。
  • 是的,我的意思是我需要字符作为文本区域中的输入空间,我正在尝试使用 \n,但是有些错误,因为我在 textarea 中看到 \n 并且没有添加断线: |
  • php.net/manual/en/language.types.string.php 读到这里,它说 '\n' 和 "\n" 是不同的。

标签: php replace textarea


【解决方案1】:

使用str_replace 和双引号"\n" 以将其解释为换行符;带单引号的'\n' 是文字反斜杠,后跟n

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

我不知道你为什么打电话给str_replace,一次是为了{br},一次是为了{/br}。您是否希望将每对 {br}{/br} 替换为两条新行?如果是这样,您可以通过一次调用更简单地做到这一点:

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

【讨论】:

    【解决方案2】:

    您需要将\n 放在双引号中,而不是单引号中。变量和转义序列不插在单引号中。此外,您可能希望将整个字符串 {br}{/br} 替换为一个新行 - 用您所做的将其替换为两个。

    所以:

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

    可能是你想要的。可能值得您阅读this,这样您就知道在 PHP 中可以/不能用字符串做什么。

    【讨论】:

      【解决方案3】:

      尝试使用双引号

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-26
        • 1970-01-01
        • 2020-07-23
        • 2011-10-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多