Turok: <br /> innerhalb <pre> entfernen

Hallo,

kann mir jemand sagen, wie ich in einer Zeichenkette alle <br /> innerhalb eines <pre>...</pre> Bereiches entfernen kann? Das Problem ist, dass in der Zeichenkette mehrere <pre>...</pre> Bereiche vorkommen können.

Das hier hat mir jemand gemailt, haut aber irgendwie nicht so recht hin ($text ist die vorliegende Zeichenkette):

if(preg_match_all("/((<pre>).+?(</pre>))/is",$text,$matches)){
  foreach($matches[1] as $match) {
    $clean = preg_replace("/(<br>\n|<br />\n)/i", "\n", $match);
    $text= str_replace($match, $clean, $text);
  }
}

Danke
Turok

  1. Hallo!

    kann mir jemand sagen, wie ich in einer Zeichenkette alle <br /> innerhalb eines <pre>...</pre> Bereiches entfernen kann? Das Problem ist, dass in der Zeichenkette mehrere <pre>...</pre> Bereiche vorkommen können.

    $string = '
    <h3>BlaBla</h3>
    <div>
    <pre>
     Text <br>
     Text
      <pre>
       Text <br>
       </pre>
      </pre>
    </div>
    <p>BlubBlub</p>
    ';

    function loesche_br_in_pre($matches)
      {
      return preg_replace("/<br([ /])*>/is", "", $matches[1]);
     }

    echo preg_replace_callback("/(<pre>(.*)</pre>)/is", "loesche_br_in_pre", $string);

    MfG, André Laugks

    --
    L-Andre @ gmx.de