【问题标题】:How to remove <br /> tags and more from a string?如何从字符串中删除 <br /> 标签等?
【发布时间】:2009-11-22 15:18:01
【问题描述】:

我需要删除所有 &lt;br /&gt; 和所有“引号” (") 和所有“和” (&amp;) 并仅用空格替换它们...

我该怎么做? (在 PHP 中)

我已经为&lt;br /&gt; 尝试过这个:

   $description = preg_replace('<br />', '', $description);

但它返回 &lt;&gt; 代替每个 &lt;br /&gt;...

谢谢

【问题讨论】:

    标签: php


    【解决方案1】:
    <?php
    
    $text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
    echo strip_tags($text);
    echo "\n";
    // Allow <p> and <a>
    echo strip_tags($text, '<p><a>');
    
    ?>
    

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

    【讨论】:

      【解决方案2】:

      你可以像这样使用str_replace

        str_replace("<br/>", " ", $orig );
      

      preg_replace 等使用正则表达式,这可能不是你想要的。

      【讨论】:

      • 给我们看一个例子。这是一个非常直接的功能,对我来说效果很好。也许还有其他问题。
      【解决方案3】:

      如果str_replace() 不适合你,那么肯定有其他问题,因为

      $string = 'A string with <br/> & "double quotes".';
      $string = str_replace(array('<br/>', '&', '"'), ' ', $string);
      echo $string;
      

      输出

      A string with      double quotes .
      

      请提供输入字符串的示例以及您希望它在过滤后的样子。

      【讨论】:

      • 呵呵,也许他把原来的字符串加了双引号。
      【解决方案4】:

      要操作 HTML,最好使用 DOM 感知工具而不是纯文本操作工具(例如,如果您使用多个空格或 &lt;br/&gt;&lt;br /&gt; 等变体,或者甚至&lt;br&gt;&lt;BR/&gt;,有时使用虽然非法)。例如,请参见此处:http://sourceforge.net/projects/simplehtmldom/

      【讨论】:

      • 嗯,在我看来,剥离可能至少与其他操作不同。这就是我们有 strip_tags() 的目的。
      【解决方案5】:

      要删除 br 的所有排列:

      <br> <br /> <br/> <br   >
      

      查看用户贡献的strip_only()函数

      http://www.php.net/strip_tags

      “使用 DOM 而不是替换”警告总是正确的,但如果任务真的仅限于这三个字符,这应该没问题。

      【讨论】:

        【解决方案6】:

        试试这个:

        $description = preg_replace('/<br \/>/iU', '', $description);
        

        【讨论】:

          【解决方案7】:

          这对我有用,删除 &lt;br/&gt;

          &amp;gt; 被识别,而 > 不被识别)

          $temp2 = str_replace('&lt;','', $temp);
          
          // echo ($temp2);
          
          $temp2 = str_replace('/&gt;','', $temp2);
          
          // echo ($temp2);
          
          $temp2 = str_replace('br','', $temp2);
          
          echo ($temp2);
          

          【讨论】:

          • >而不是
          猜你喜欢
          • 2018-08-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-07
          相关资源
          最近更新 更多