strip_tags $allowable_tags

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • strip_tags $allowable_tags

    Hallo,

    ich möchte in einem Texteingabefeld die Tags <b> <i> sowie <u> erlauben, alle anderen nicht.

    Dafür würde ja

    $neu = strip_tags($alt,"<b><i><u>");

    reichen.

    Wenn allerdings ein User <b style=font-size:100pt>BLA</b> schreibt, dann hilft strip_tags() hier auch nichts.

    Sollte man daher vielleicht erst im Text mit preg_replace die Tags in UBB-Code ersetzen, dann strip_tags() normal ausführen und dann die UBB-Codes in normale mit spitzen Klammern wieder umwandeln?

    Andere Lösung fällt mir grad nicht ein...

  • #2
    Wenn allerdings ein User <b style=font-size:100pt>BLA</b> schreibt, dann hilft strip_tags() hier auch nichts.
    Wieso? es wird genau das gemacht, was du willst.

    Was ist dein problem? du willst den style-tag nicht erlauben? Das hast du nirgendwo gesagt. Du hast nur gesagt, dass du sämtliche tags außer <b>,... löschen willst.

    Wenns dir tatsächlich um den Style-Tag geht, dann lösch halt den style-tag. preg_replace hat da sicher keine Probleme.
    Zuletzt geändert von TobiaZ; 01.08.2007, 22:45.

    Kommentar


    • #3
      In diesem Falle würde ich zuerst strip_taggen und dann den RegExp in etwa so drüber lassen
      PHP-Code:
      <?PHP 
        
      // 
        // Text, der durchsucht werden soll 
        // 
        
      $subject '<b style=\"height:100px\">Blabla</b>'
        
      // 
        // Der Reguläre Ausdruck 
        // 
        
      $pattern '@(<[^\\s]*)[^>]*>@is'
        
      // 
        // Ersatzstring 
        // 
        
      $replace '\\1>'
        
      // 
        // RegExp auswerten, Ersetzung durchführen 
        // 
        
      $result preg_replace($pattern$replace$subject); 
        
      // 
        // Ergebnis ausgeben 
        // 
        
      echo '<p>Ergebnis: '.htmlspecialchars($result).'</p>'
      ?>
      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar

      Lädt...
      X