[PHP] Reguläre Ausdrücke

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Inquisito, 1. Februar 2008 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 1. Februar 2008
    Reguläre Ausdrücke

    Hi guys,

    ich hab in einem anderen Thread erfahren das ich mit preq_match_all hervorragend bestimmte teile meines HTML-Codes entfernen kann.

    Leider komme ich mit den Regulären ausdrücken nicht so ganz klar, ich hab mich zwar daran versucht und den dort verwendeten Ausdruck versucht anzupassen, aber leider führt das nicht zu dem gewünschten ergebniss (eher zu garkeinem...)

    Ich möchte gerne aus einem String sämtliche HTML-Kommentare entfernen (<!-- .... -->). Ich habe den folgenden Suchstring :

    Code:
    preg_match_all("!{([^}]*)!",$test,$ergebnisse); 
    Versucht ungefähr so anzupassen :
    Code:
    preg_match_all("/<!--([^-->]*)!",$test,$ergebnisse); 
    Das führt allerdings zu keinem ergebniss.


    Ich hab es noch mit einem anderen Ausdruck versucht... leider hab ich den bereits überschrieben :angry: , auf jedenfall führte der auch zu keinem ergebniss.

    Das was ich möchte ist im prinzip einfach ... alles was mit "<!--" im string beginnt und mit "-->" enden, möchte ich entfernen. (Mit oder ohne "<!--" "-->" ..).

    Ich bin langsam am verzweifeln ^^

    Danke im voraus , guys
     
  2. 1. Februar 2008
    AW: Reguläre Ausdrücke

    Code:
    preg_replace('~(?:(\<\!-- .* --\>))~sUX', '', $string); 
    probiert?
     
  3. 1. Februar 2008
    AW: Reguläre Ausdrücke

    Jep, er findet nun zwar irgendwas aber wenn ich exakt das ausgebe ist der string leer (siehe routine).

    Code:
     $testdecode = $string;
     $test = stripslashes($testdecode);
     // Code aus der Variable holen
     preg_match_all("~(?:(\<\!-- .* --\>))~sUX",$test,$ergebnisse);
     foreach ($ergebnisse[1] as $code)
     {
     $code_text = $code;
     $string=str_replace("<!--".$code_text."-->","",$string);
    
     print($code_text."<BR>"); #Hier die ausgabe : LEERE string. circa 3-4 stück.
     }
    
    Aber glaube der weg ist nicht der falsche ^^
     
  4. 1. Februar 2008
    AW: Reguläre Ausdrücke

    PHP:
    $string  = <<<END_S
    hallo welt <br />
    <!-- ein kommentar -->
    weiterer text<br />
    <!-- noch ein kommentar -->
    ende!    
    END_S;
        
    $string  preg_replace ( '~(?:(\<\!-- .* --\>))~sUX' '' $string );
    print 
    $string
    geht ohne probleme.
     
  5. 1. Februar 2008
    ah, hab die funktion nicht geändert, hast vollkommen recht, funktioniert.

    Leider nur eingeschränkt, dend mehrzeilige kommentare werden nicht entfernt (kann mir das logisch nicht erklären...).

    Prinzipiel schonmal richtig gut !
    Danke Bw ist für dich raus.

    :admin:

    Alles klar, hab die Leerzeichen im Ausdruck entfernt, danach sind auch letzte Reste getilgt, ich danke dir herzlich !!!
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.