Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

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

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
blinks
PostRank 4
PostRank 4
Beiträge: 155
Registriert: 25.01.2004, 12:37

Beitrag von blinks » 08.05.2007, 17:58

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 :)