- substr: documentation ( source)
- preg_match: documentation ( source)
- preg_replace: documentation ( source)
<?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);