<?php
$string='<a blah href="http://example.com/readme.zip" blah2></a><img ><a blah href="http://example.com/readme.zqp" blah2></a>';
echo preg_replace('/(href="[^"]*\.(?!(?:zip|pdf|txt)")[^."]+")/', '$1 target="_blank"', $string) . "\n";
$doc = new DOMDocument();
$doc->loadHTML("<html>$string</html>", LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
foreach ($doc->getElementsByTagName('a') as $a) {
$href = $a->getAttribute('href');
if (!preg_match('/(zip|pdf|txt)$/', $href)) {
$a->setAttribute('target', '_blank');
}
}
echo substr($doc->saveHTML(), 6, -8);
- Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- <a blah href="http://example.com/readme.zip" blah2></a><img ><a blah href="http://example.com/readme.zqp" target="_blank" blah2></a>
<a blah href="http://example.com/readme.zip" blah2></a><img><a blah href="http://example.com/readme.zqp" blah2 target="_blank"></a>
preferences:
154.42 ms | 408 KiB | 5 Q