機能しません。関数を呼び出すと、$1 の値が失われます。
echo preg_replace('"\b(http://\S+)"', '<a href="$1">'.findTopDomain('$1').'</a>', $text);
正常に動作し、出力: stackoverflow.com
echo preg_replace('"\b(http://\S+)"', '<a href="$1">'.findTopDomain('http://stackoverflow.com/questions/ask').'</a>' , $text);
$1 値を preg_replace 内から関数に送信する必要があります。私は何を間違っていますか?