Reguläre Ausdrücke - [preg_match_all();]
Gunther
- php
Hallo und fröhliche Weihnachten!
Ich bräuchte mal bitte die Hilfe eines Experten im Bezug auf reg. Exp.!
Ich habe eine HTML-Datei in eine Variable eingelesen und möchte nun alle Links aus dieser Seite extrahieren. Das klappt auch soweit (preg_match_all("|<a href(.*)</a>|siU", $fcontents, $regs);). Die Seite enthält verschiedene Links, und ich möchte aber nur die Links haben, die zu einer bestimmten Klasse gehören. Die besagten Links sehen alle so aus:
<a href="http://www.meine_domain.de/verz./" class="uschrift">Link-Text</a>
Wäre jemand so nett, und würde die Code-Zeile mit 'preg_match_all(???)' posten, mit der ich genau diese Links auslesen kann?
Vielen Dank im voraus und einen guten Rutsch in's neue Jahr!
MfG Gunther
hio Gunther,
erstmal, bin kein Experte in regExen, verzweifle oft an der Logik dieser Dinger, am Ende haben sie auch immer recht ;)
hm, irgendwie hab ich die regExe schonmal gesehen (?)
Ich würde es mit
preg_match_all("|<a href="([^"]+)" class="uschrift">.+</a>|siU", $fcontents, $regs);
probieren.
Dein Ausdruck findet zwar die Links, aber das _alles ab dem =" nach href bis zum abschliessenden </a>. Ich denke du willst vielmehr aber nur die URL's ansich haben.
Dieser Ausrduck findet alles zwischen " und " des Attributes href, sofern dieses als erstes Attribut definiert wurde.
gl & hf
Thorsten
hio Gunther,
Ich würde es mit
preg_match_all("|<a href="([^"]+)" class="uschrift">.+</a>|siU", $fcontents, $regs);
probieren.
gl & hf
Thorsten
Hallo Thorsten,
super, vielen Dank! Funktioniert genau so, wie gewollt ;-)!
Werde mich wohl mal etwas eingehender mit diesen Ausdrücken beschäftigen (müssen). Wie du schon sagtest: "Irgendwie sind sie ja am Ende doch von einer gewissen Logik...".
Nochmals besten Dank & guten Rutsch in's neue Jahr!
Gruß Gunther