Anzeige:
Ergebnis 1 bis 2 von 2

Thema: Mit PCRE alles zwischen bestimmten divs ersetzen

  1. #1
    Registrierter Benutzer
    Registriert seit
    18.08.2004
    Beiträge
    11

    Mit PCRE alles zwischen bestimmten divs ersetzen

    Hallo,

    Ich möchte innerhalb eines Textes alles zwischen <div class="code"> und </div> suchen und alles innerhalb des Divs mit htmlspecialchars() bearbeiten.

    Jetzt hab ich mir gedacht, ich such mit preg_match_all() einfach alle vorkommen, bearbeite alle Matches und ersetze dann mit preg_replace alle vorkommen durch meine überarbeitete Version.

    Das einzige Problem was ich dabei habe, ist der Reguläre Ausdruck. So sieht das bisher aus:

    PHP-Code:
    //innerhalb von <div class="code"></div> alle sonderzeichen tilgen
    $regex   '/<div class="code">(.+)<\/div>/i';
    $matches = array();

    //alle vorkommen suchen
    preg_match_all($regex$tut['tutorial'], $matches);

    var_dump($matches);

    //alle vorkommen bearbeiten und ersetzen
    foreach ($matches as $current)
      
    preg_replace($regexhtmlspecialchars($current), $tut['tutorial']); 
    preg_match_all() findet einfach nichts, weil vermutlich mein Ausdruck falsch ist aber ich find den Fehler net.

  2. #2
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Ich vermute einmal du verwendest PHP 5.
    Dann ist DOM die bessere Wahl
    Das regexp verhalten unter PHP5 ist im Moment wegen der Unicode Umstellung nicht die Beste wahl.
    PHP-Code:
    $str file_get_contents"http://my.homepage.de/index.php" );
    $str stripslashes$str );
    $dom = new DomDocument'1.0''utf-8' );
    $dom->loadHTML$str );
    $Nodes $dom->getElementsByTagName"div" );
    foreach( 
    $Nodes AS $Child ) {
       if ( 
    $Child->getAttributeNode"class" )->nodeValue == 'TextBloc' ) {
          
    $old $Child->firstChild;
          
    $new = new DOMText"Einen neuen Text einfuegen ;-)" );
          
    $Child->replaceChild$new$old );
       }
    }
    echo 
    $dom->saveHTML(); 
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

Lesezeichen

Berechtigungen

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