Я использую следующий код для добавления ссылок на URL в тексте ...
<code> if (preg_match_all("#((http(s?)://)|www\.)?([a-zA-Z0-9\-\.])(\w+[^\s\)\<]+)#i", $str, $matches)) { ?><pre><?php print_r($matches); ?>
Вы можете использовать preg_replace_callback() для надежной работы над отдельными матчами.
preg_replace_callback()