代码之家  ›  专栏  ›  技术社区  ›  Julian H. Lam

与NL2BR相反?它是str ou replace吗?

php
  •  6
  • Julian H. Lam  · 技术社区  · 15 年前

    所以函数nl2br很方便。除了在我的网络应用程序中,我想做相反的事情,将换行符解释为新行,因为它们将被回送到一个预先填写的表单中。

    str_替换can take <br /> 然后用我想要的替换它,但是如果我放在\n中,它会回响一个反斜杠和一个n。它只在我在脚本中间放一个文本换行符,并破坏缩进(这样就没有尾随空格)时才起作用。

    见:

        <?=str_replace('<br />','
    ',$foo)?>
    

    我是不是缺少逃亡角色?我想我尝试了所有的组合…

    6 回复  |  直到 8 年前
        1
  •  12
  •   Amy B    15 年前

    你在写信吗 '\n' ?因为\n只有用双引号括起来才能正确解释: "\n" .

    主题外:The <?= 语法是邪恶的。请不要为了团队中的其他开发人员而使用它。

        2
  •  18
  •   Pascal MARTIN    15 年前

    在某些情况下,您的代码可能不够;那么,这样的情况下,如何进行替换:

    $html = 'this <br>is<br/>some<br />text <br    />!';
    $nl = preg_replace('#<br\s*/?>#i', "\n", $html);
    echo $nl;
    

    也就是说,比简单的 str_replace ;-)

    注:一般来说 不使用regex操作HTML --但是,在这种情况下,考虑到regex将非常简单,我想这是可以的。


    另外,注意我用过 "\n"


    基本上,A <br> 标签通常如下:

    • <BR>
    • <br/> ,在 /

    第二点是 str_替换 还不够 .

        3
  •  12
  •   ryeguy    15 年前

    你想要这个:

    <?=str_replace('<br />',"\n",$foo)?>
    

    你可能忘了用双引号。只有使用双引号时,才会为特殊字符分析字符串。

        4
  •  0
  •   user2585941    10 年前

    我只是跳过了 nl2br() 以另一种方式使用它:

    $post_content  = str_replace('\n',"<br />",$post_content );
    

    一切正常。

    如需完整描述,请访问我的博客:

    How to use nl2br and reverse br2nl

        5
  •  0
  •   Limitless isa    8 年前
        <?php echo strip_tags('Dear<br/>Bidibidi'); ?>
        Dear
        Bidibidi
    
        <?php echo nl2br('Dear
                    Bidibidi'); ?>
        Dear<br/>Bidibidi
    

    http://php.net/manual/tr/function.strip-tags.php

        6
  •  0
  •   mgutt    8 年前

    替代@pascalmartin的答案

    $string = stri_replace(array(
        '<br>',
        '<br/>',
        '<br />',
    ), "\n", $string);
    

    它不适用于像 <br /> 但这应该是一个非常罕见的案例。

    推荐文章