Ergebnis 1 bis 7 von 7

Thema: Mit RegEx HTML filtern

  1. #1
    Meister(in) Avatar von Teron Gerofied
    Registriert seit
    26.01.2008
    Ort
    serverraum
    Alter
    26
    Beiträge
    347
    Danke
    0
    Bekam 1 mal "Danke" in 1 Posting

    Standard Mit RegEx HTML filtern

    Hallo Community,

    ich hab ein profilsystem und da gibts ein Feld wo man bei seinem profil HTML und CSS verwenden darf um die Seite umzudesignen.

    dieses Feld verwendet auch die Funktion nl2br().

    Wenn jetzt jemand einen CSS-Sytle-Tag eingibt kommt das (logischerweise):

    <style type="text/css"><br />
    body {<br />
    background-color: #000000;<br />
    }<br />
    </style>

    Ich möchte die Style-HTML Tags herausfiltern und die Umbrüche entfernen. Habe nur wenig ahnung von RegEx ... Kann mir wer helfen, hab nirgendwo was brauchbares gefunden.
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    PHP-Code:
    if(isset($this) || !isset($this)){ // that's the question... 

  2. #2
    der/die Göttliche Avatar von jojo87
    Registriert seit
    23.03.2007
    Ort
    Leipzig
    Alter
    30
    Beiträge
    3.131
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Mit RegEx HTML filtern

    Nach grobem Überschlagen wird das ne ziemlich laufzeitintensive Funktion.
    Wäre es auch eine Lösung, die Stylegeschichten seperat eingeben zu lassen?

  3. #3
    Meister(in)
    Themenstarter
    Avatar von Teron Gerofied
    Registriert seit
    26.01.2008
    Ort
    serverraum
    Alter
    26
    Beiträge
    347
    Danke
    0
    Bekam 1 mal "Danke" in 1 Posting

    Standard AW: Mit RegEx HTML filtern

    Hallo,

    ja daran hatte ich gedacht aber ich brauchs garnicht mehr ... Kann RegEx wohl besser als ich dachte.

    Simpel:

    Code:
     
    $tmp1 = eregi_replace("(.*)<style(.*)>(.*)</style>(.*)", \\1, $html_text);
    $tmp2 = eregi_replace("(.*)<style(.*)>(.*)</style>(.*)", "<style\\2>\\3</style>", $html_text);
    $tmp3 = eregi_replace("(.*)<style(.*)>(.*)</style>(.*)", \\4, $html_text);
     
    echo nl2br($tmp1).$tmp2.nl2br($tmp3);
    Das geht. Jetzt eine Frage:

    wenn ich jetzt so einen Komiker habe der sowas macht:

    Code:
     
    <script type="text/javascript" language="Javascript">
    while( true )
    {
      alert("Haha!");
    }
    </script>
    Den Code entfernen.
    Sollte so gehen oder?

    Code:
     
    $full = nl2br($tmp1).$tmp2.nl2br($tmp3);
    $full = eregi_replace("(.*)<script(.*)>(.*)</script>(.*)", "\\1<br />\\4", $full);
     
    echo $full;
    Oder ?

    Mfg
    PHP-Code:
    if(isset($this) || !isset($this)){ // that's the question... 

  4. #4
    Meister(in)
    Themenstarter
    Avatar von Teron Gerofied
    Registriert seit
    26.01.2008
    Ort
    serverraum
    Alter
    26
    Beiträge
    347
    Danke
    0
    Bekam 1 mal "Danke" in 1 Posting

    Standard AW: Mit RegEx HTML filtern

    Ok, wzu frag ich eig. noch, irgendwie krieg ichs dann immer selbst hin

    Danke trotzdem.
    PHP-Code:
    if(isset($this) || !isset($this)){ // that's the question... 

  5. #5
    Azubi(ne)
    Registriert seit
    30.10.2008
    Beiträge
    81
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Mit RegEx HTML filtern

    Zitat Zitat von Teron Gerofied Beitrag anzeigen
    Ok, wzu frag ich eig. noch, irgendwie krieg ichs dann immer selbst hin

    Danke trotzdem.
    Das ist gut, aber du solltest deine Lösung ins Forum posten, da irgendwann jemand anders an deinem Punkt stehen könnte und ihn genau diese Lösung weiterbringen könnte
    Der frühe Vogel fängt den Wurm,
    aber die zweite Maus bekommt den Käse.

  6. #6
    Azubi(ne)
    Registriert seit
    08.01.2007
    Beiträge
    64
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Mit RegEx HTML filtern

    Aber du solltest bei deiner "<script> ...." Ueberlegung sofort bemerkten: Aha! Hier kann der Benutzer _ALLES_ eingeben.

    In dem Fall solltest du nicht einzeln verbieten (Durch RegEx) sondern einzeln erlauben! Sonst ist da auch superschnell PHP oder <iframe> oder was weiss ich drauf.

    MfG,

    //Immer schoen die Sicherheit beachten Papa...
    HolyMarcell
    www.holy-infos.de

  7. #7
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Mit RegEx HTML filtern

    PHP-Code:
    $text preg_replace_callback('~<style type="text/css">.*</style>~Ui''removeBr'$text);
    function 
    removeBr(array $found)
    {
    return 
    str_replace("<br/>\n""\n"$found[0]);

    Sollte klappen, hab mal ne BBCode-Engine gemacht.

    Viele liebe Grüße
    The User

Ähnliche Themen

  1. Informationen aus externer Serverdatei Filtern
    Von yngvar im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 22.10.2008, 22:32
  2. RegEx in php
    Von synaptic im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 8
    Letzter Beitrag: 04.07.2008, 13:59
  3. Per Skript FLV-Adresse aus Youtube Videos usw filtern
    Von cursed_phil im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 7
    Letzter Beitrag: 25.05.2008, 19:21
  4. Baddwords filtern mit arrays
    Von im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 21.07.2006, 23:07
  5. datensatz aus array filtern
    Von J-T im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 7
    Letzter Beitrag: 27.01.2006, 21:11

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •