Mailinglisten-Archive |
Jochen Metzger wrote: > Hi ho, > > warum finde ich mit folgendem Code nur den letzten Ausdruck und nicht den > ersten? > > <?php > $string='blabla <a href="test1.html?say=first" class="good">test1</a>'. > 'gogogo <a href="test2.html?say=second" class="bad">test2</a>'; > > /* get rid of all newlines */ > $string=preg_replace("/\\n/","",$string); > > /* - i -> case insensitive */ > preg_match("/\<a.*href\=([^> ]*)[^>]*\>(.*)\<\/a\>/i",$string,$t_match); > > print "<pre>matched"; > print_r ($t_match); > print "</pre>"; > ?> > > Grüße > > Jochen du matchst das erste <a, dann beliebig viele irgendwelche Zeichen, dann das letzte href, weil ja vorher '.*' steht, das müsste man durch ein '[^>]' ersetzen. Außerdem müsste das '>(.*)<' durch '>([^<>]*)<' ersetzt werden. Spannend wird es, wenn Du alle href's haben willst... -- Mit freundlichen Grüßen Marco Schumann united-domains AG Tel.: 0 81 51 / 3 68 67 - 0 Fax: 0 81 51 / 3 68 67 - 77 http://www.united-domains.de mailto:schumann_(at)_united-domains.de
php::bar PHP Wiki - Listenarchive