phpbar.de logo

Mailinglisten-Archive

[php] Problem mit Regulaeren Ausdruecken

[php] Problem mit Regulaeren Ausdruecken

Oliver Kummerow naklar_(at)_altavista.net
Fri, 09 Jun 2000 14:35:41 +0200


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