Imam html koji dolazi od korisnika (komentari) i trebalo bi da se doda rel="nofollow" svim linkovima koji se nađu u tom HTML-u. Našao sam ovo:
PHP kôd:
function addNoFollow($html)
{
$str = stripslashes($html);
$preg = "/<[\s]*a[\s]*href=[\s]*[\"\']?([\w.-]*)[\"\']?[^>]*>(.*?)<\/a>/i";
preg_match_all($preg, $str, $match);
foreach ($match[1] as $key=>$val) {
$pattern[] = '/'.preg_quote($match[0][$key],'/').'/';
$replace[] = "<a href='$val' rel='nofollow'>{$match[2][$key]}</a>";
}
return preg_replace($pattern, $replace, $str);
}
I to dodaje linkovima rel="nofollow", ali mi zezne URL-ove u linkovima, odnosno ostavi samo "http" u href atributu. Pretpostavljam da je loš regex pa ako neko može da baci pogled, bio bih mu zahvalan.
Radio sam print_r($match); posle preg_match_all(), i uopšte ne match-uje URL sa ovakvim regex-om.