Mailinglisten-Archive |
Hi Liste, ich komme irgendwie an zwei Problemen mit einem regulaeren Ausdrucke nicht weiter. Vielleicht kann mir ja jemand einen kleinen Tipp oder Denkanstoss geben. Folgendes Skript: $loc_text .= "Hier steht ein externer Link "; $loc_text .= "<A HREF=\"http://www.externe-domain.de/\"" $loc_text .= "TARGET=\"_blank\">zu einer anderen Seite</A>. "; $loc_text .= "Es gibt aber auch interne Links "; $loc_text .= "<A HREF=\"http://www.interne-domain.de/pfad/\">wie $loc_text .= "diese oder wie <A HREF=\"/pfad/datei.htm\"" $loc_text .= "TARGET=\"_top\">wie diesen</A>. "; $loc_search = "|<a href=\"(.*)\"( target=\"(.*)\")?>.*</A>|Ui"; preg_match_all ($loc_search, $loc_text, $loc_result); echo "<PRE>"; var_dump($loc_result); echo "</PRE>"; Der regulaere Ausdruck solle alle vorhandenen Links im Text finden, unabhaengig davon, ob ein TARGET gesetzt worden ist oder nicht. Die komplette Fundstelle sowie die URL und das Target soll er ins Array $loc_result packen. Es funktioniert auch eigentlich, nur gibt es noch zwei Schoenheitsfehler. 1. Um das mal vorhandene und mal nicht vorhandene TARGET zu finden, habe ich die gesamte Passage nochmals in Klammern eingefasst: ( target=\"(.*)\")? Dadurch erhalte ich in $loc_result aber auch diese Passagen, die ich nicht brauche. Mir reicht schliesslich nur das Target selber Kann ich das irgendwie verbessern? 2. In meinem Beispiel ist fuer den zweiten Link kein Target angegeben. Gibt es eine Moeglichkeit, dass er in dem Ergebnisarray dafuer trotzdem eine Art Platzhalten anlegt, damit die einzelnen Elemente des Arrays gleichmaessig durchnummeriert sind? Ich hoffe, mir kann jemand einen kleinen Denkanstoss in die richtige Richtung geben. Danke und Gruss, Ralf -- __________________________________________ In-Greece.de - die Griechenlandcommunity _______ http://www.in-greece.de/ _________
php::bar PHP Wiki - Listenarchive