Guten Tag,
ich lese mit PHP den Content einer Seite ein und versuche nun alle Links herauszufiltern.
Mein Problem ist, dass ich das irgendwie nicht hinbekomme und preg_match_all() immer über die tags "hinausgeht".
Bsp. bei <a ...>...</a>Text<a ...>...</a> geht das Muster von dem ersten fettgedruckten zum zweiten.
Jedoch funktioniert das ganze bei nur einem Link im Content einwandfrei
ich lese mit PHP den Content einer Seite ein und versuche nun alle Links herauszufiltern.
Mein Problem ist, dass ich das irgendwie nicht hinbekomme und preg_match_all() immer über die tags "hinausgeht".
Bsp. bei <a ...>...</a>Text<a ...>...</a> geht das Muster von dem ersten fettgedruckten zum zweiten.
Jedoch funktioniert das ganze bei nur einem Link im Content einwandfrei
PHP-Code:
<?php
$pattern = '#<a(?:.*)?href=([^"]*)(?:[^>]*)?>(.*?)</a>#s';
//Pseudocontent
$html = '<a class="test" href="test1.html">test1</a>text text
<a class="test2" href="test2.html">test2</a> text text
<a href="test3.html">test3</a>';
preg_match_all($pattern, $html, $treffer, PREG_SET_ORDER);
print_r($treffer);
?>
Ausgabe ist :
Array
(
[0] => Array
(
[0] => <a class="test" href="test1.html">test1</a>text text
<a class="test2" href="test2.html">test2</a> text text
<a href="test3.html">test3</a>
[1] =>
[2] => test3
)
)
Kommentar