preg_replace_callback und preg_match

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.

    Comment

    Working...
    X