代码之家  ›  专栏  ›  技术社区  ›  Darksymphony

PHP替换换行,但仍显示新行

  •  0
  • Darksymphony  · 技术社区  · 4 年前

    我有一个简单的HTML文本,每个部分用 <br><br>

    *e.g. Lorem ipsum<br><br>
    Another lorem ipsum<br><br>
    Third section...*
    

    我通过JSON将此文本发送到android应用程序,因此它也使用 <br> 标签,因为它们是显示应用程序中正确分隔的部分所必需的。

    问题是,谷歌的文字演讲也在阅读那些
    标签。

    我想摆脱他们,但仍然保持底线。

    我用PHP管理这些文本,并尝试:

    $txt = preg_replace('<br>', '\r\n', $mytxt);$final = strip_tags($txt);
    

    但这完全删除了换行符,因此最终文本是一体的,它也替换了ANY br 文本中的单词,即使我要求替换 <br> ,所以这很奇怪。

    那么,我怎样才能保留换行符,却去掉html标签呢?

    1 回复  |  直到 4 年前
        1
  •  1
  •   Daantje kirelagin    4 年前

    你的正则表达式错了。试试这个:

    /**
    * Convert BR tags to nl
    *
    * @param string The string to convert
    * @return string The converted string
    */
    function br2nl($string)
    {
        return preg_replace('/\<br(\s*)?\/?\>/i', "\n", $string);
    }
    

    署名:这个代码片段来自php站点的注释。 https://www.php.net/manual/en/function.nl2br.php

        2
  •  0
  •   Simon K    4 年前

    条形标签可能会帮助您。。。

    <?php
    
        $mytxt = '*e.g. Lorem ipsum<br><br>
        Another lorem ipsum<br><br>
        Third section...*';
    
        $final = strip_tags($mytxt);
    

    例如,如果你在浏览器中回显这一点,就会发现没有换行,但如果你查看页面的源代码,你会发现换行实际上仍然完好无损。

    进一步信息: https://www.php.net/manual/en/function.strip-tags.php