<?php
$html = <<<HTML
<a href="SOME_URL">
<a href="SOME_URL_2">
<a href="SOME_URL_DEEP">
</a>
</a>
</a>
<a href="SOME_URL3">
<a href="SOME_URL_4">
</a>
</a>
<a href="SOME_URL_5">
</a>
<a href="SOME_URL_6">
</a>
HTML;
do {
$html = preg_replace(
'#<a[^>]*>(?:(?!</?a).)*(<a[^>]*>(?:(?!</?a).)*</a>)(?:(?!</?a).)*</a>#si',
'$1',
$html,
-1,
$count
);
} while ($count);
$dom = new DOMDocument();
$dom->loadHTML($html);
$result = [];
foreach($dom->getElementsByTagName('a') as $node) {
$result[] = $node->getAttribute('href');
}
var_export($result);
- Output for 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
- array (
0 => 'SOME_URL_DEEP',
1 => 'SOME_URL_4',
2 => 'SOME_URL_5',
3 => 'SOME_URL_6',
)
preferences:
55.39 ms | 402 KiB | 62 Q