function url_replace($matches) {
if(strstr($matches[1], "mysite.com")) {
$arr = explode(" ", $matches[1]);
foreach($arr as $k => $v) {
$atr = explode("=", $v);
$url[$atr[0]] = str_replace(array("\"", "'"), "", $atr[1]);
}
return "<a href='".$url['href']."'>".$matches[2]."</a>";
}
else {
$arr = explode(" ", $matches[1]);
foreach($arr as $k => $v) {
$atr = explode("=", $v);
$url[$atr[0]] = str_replace(array("\"", "'"), "", $atr[1]);
}
return "<a href='".$url['href']."' target='_blank' rel='nofollow'>".$matches[2]."</a>";
}
}
function parse_text($txt) {
echo preg_replace_callback("/\<a (.*?)\>(.*?)\<\/a\>/i", "url_replace", $txt);
}
parse_text($text);
Подскажите чего тут можно подсократить и сделать более адекватным и правильным?!?
Уже косяк вижу, если будет стоять например alt='123 456' то разбивание на массив будет кривым.