日付が変わってid代わりましたが、177です。
皆様ありがとうございます。
h抜けているurlにhを補完して、hrefをつける手法にしました
しかし、拡張子のあとに英数字とアンダーバーがあると失敗します。
例
「ttp://aaa/123456.jpg ああああ」はh補完成功 ok
「ttp://aaa/123456.jpgああああ」はh補完成功 ok
「ttp://aaa/123456.jpgppp」はh補完成功するが拡張子に余分な文字列がつく ng
私の正規表現の理解度ではこれが限界です。
改善策はありますでしょうか?

if(preg_match("@([^h]{1}ttp)(s)?:\/\/([^<]+)(\.([^.<\W]+))(\W*)(\s*)(?:[<][^<]+[>])@si", $html)){
$string = $html;
$pattern = "@([^h]{1}ttp)(s)?:\/\/([^<]+)(\.([^.<\W]+))(\W*)(\s*)(?:[<][^<]+[>])@si";
$replacement ="<a href=\"http$2://$3$4\">http$2://$3$4</a><br/>";
$html = preg_replace($pattern, $replacement, $string);
}