Вы можете использовать следующее регулярное выражение для подбора вашей частичной иглы и остального слова вокруг нее:
$regex = '\b\w*' . $needle . '\w*\b';
затем передайте это preg_replace
:
$newtext = preg_replace($regex, '<a href="http://www.something.com/$0">$0</a>', $oldtext);