Mailinglisten-Archive |
HO ;) "Kunkel, Stefan GFIDOR" schrieb: > > HI > Ich versuche gerade PHP kennenzulernen. > Meine Installation PHP/APACHE/MYSQL unter Windows 2000 und NT4 läuft gut > (nach ersten Tests :)) Bitte noch: Welche Versionen von PHP und MySQL? > Nun treffe ich in der Programmierung auf erste Probleme: > Ich möchte aus einer Zeichenkette Links extrahieren, d.h. den Text zwischen > <A und </A> > Mein Versuch mit "<A .*</A>" führte leider dazu,das ich den ganzen Text > erhalten habe, vom ersten bis zum letzten Link > Wie kann ich verhindern, das bei dem .* Konstrukt die Zeichenfolge </A> > ausgeschlossen wird ??? > Oder noch besser, wie kriege ich den Ausdruck so hin, das ich ALLE > gefundenen Zeichenfolgen in einem Array habe ??? 1. Wenn möglich ereg*s vermeiden; preg*s haben mindestens 1000% mehr Funktionalität, Geschwindigkeit und Stabilität. 2. Du mußt eigentlich nur das Pattern auf: "<A (.*)</A>" verändern. 3. Unter preg_match_all nachlesen, auch wenn man auf den 1. Blick nichts versteht :) Ich würde dann noch $text = "<a href=\"www.xy.tld/zzzz.html\">ZZ</a>"; $text .= "<a href=\"www.ab.tld/aaaa.html\">AA</a>"; if(preg_match_all("|<A (.*)</A>|Uis", $text, $results, PREG_SET_ORDER)) { while(list($k, $v) = each($results)) { print "<br>".$results[$k][1]; } } Du kriegst allerdings so noch keine richtig saubere Extrahierung des Links. mit freundlichen Grüßen, oK.
php::bar PHP Wiki - Listenarchive