Seite 1 von 1

Alle außer festgelegte HTML-Tags entfernen (regexp)

Verfasst: 08.05.2007, 17:58
von blinks
Hallo,

ich brauche eine Funktion, die mir aus einem String alle HTML-Tags entfernt, ausgenommen einiger Tags, die ich explizit zulasse. Nun habe ich folgende Funktion gefunden, welche jedoch nur alle definierten Tags entfernt:

Code: Alles auswählen

   function soft_strip_tags($text, $tags = array('br', 'ul', 'li', 'strong')) {
      $args = func_get_args();
      $text = array_shift($args);
      $tags = func_num_args() > 2 ? array_diff($args,array($text)) : (array)$tags;
      foreach ($tags as $tag) {
         if&#40;preg_match_all&#40;'/<'.$tag.'&#91;^>&#93;*>&#40;.*&#41;<\/'.$tag.'>/iU', $text, $found&#41;&#41;&#123;
            $text = str_replace&#40;$found&#91;0&#93;,$found&#91;1&#93;,$text&#41;;
         &#125;
      &#125;

      return $text;
   &#125;
Mit dieser Funktion würden also aus einem String alle <br>, <ul>, <li> und <strong> entfernt werden und das klappt auch sehr gut. Ich brauche das ganze jedoch umgekehrt. Es sollen also ALLE Tags AUSSER der im Array übergebenen entfernt werden. Da ich nicht sonderlich fit bin mit regulären Ausdrücken, hoffe ich, dass mir hier jemand weiterhelfen kann.

Vielen Dank schonmal :)

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 08.05.2007, 18:47
von nachfrag
Hallo,

warum einfach wenn es auch kompliziert geht :) ...

du kannst beim Aufruf von strip_tags in einem zweiten Parameter HTML Tags angeben, die nicht "gestrippt" werden sollen.

s. auch https://de3.php.net/strip_tags

Grüße

Verfasst: 08.05.2007, 19:11
von blinks
uff... :oops: dankeschön... ;)