preg_replace_callback und preg_match

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

  • preg_replace_callback und preg_match

    Hallo Gemeinde

    ich lade mit den Inhalt einer HTML-Datei mit
    PHP-Code:
    $inhalt file_get_contents("dateien/index.html"); 
    Danach moechte ich den neuen Inhalt in eine Variable packen.
    Wie ihr seht, hole ich mir alle a href aus der Html-Datei.
    PHP-Code:
    $neuerinhalt preg_replace_callback('/(a href=")(.*?)(")/'"ersetzen"$inhalt); 
    Die Funktion ersetzen sieht so aus:

    PHP-Code:
    function ersetzen($treffer) {

    if(
    preg_match('/([0-9_]{1,8})\\.(pdf|xls|tex)/'$treffer[2], $match))
    {
     return 
    $treffer[1]."neuercode_".$match[1]."ende".$treffer[3];
    } else {
    //error
     
    }

    Wenn ich mir nun den Inhalt der $neuerinhalt ansehe, killt der ueberall die hrefs raus und ersetzt an der richtigen Stelle den Code. Er soll aber nur an dieser Stelle (daher das if) den Code ersetzen und die restlichen Links ignorieren.

    Was mach ich falsch? *Schlauch-steh*
    Niveau sieht nur von unten aus wie Arroganz!

  • #2
    Re: preg_replace_callback und preg_match

    Du hast eine Funktion, durch deren Rückgabe die Treffer ersetzt werden.
    Wenn du jetzt Treffer nicht verändern möchtest - ist da der Gedanke so abwegig, einfach das bereits vorhandene als "Ersatz" wieder zurückzugeben ...?


    Ob das performant ist, sei mal dahingestellt.
    Warum du die Bedingung nicht gleich beim ursprünglichen Suchvorgang mit einbeziehst, weisst wohl nur du alleine.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar

    Lädt...
    X