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