URLだけを抽出してリンクに自動変換するPHPスクリプト

掲示板などでURLを自動変換したい場合に使います

使用方法 文字列をヒアドキュメントにしておきます
ヒアドキュメントにした変数を url_henkan($moji)のように、url_henkan()で囲みます

function url_henkan($mojiretu){
$mojiretu = htmlspecialchars($mojiretu,ENT_QUOTES);
$mojiretu = nl2br($mojiretu);
//文字列にURLが混じっている場合のみ下のスクリプト発動
	if(preg_match("/(http|https):\/\/[-\w\.]+(:\d+)?(\/[^\s]*)?/",$mojiretu)){
		preg_match_all("/(http|https):\/\/[-\w\.]+(:\d+)?(\/[^\s]*)?/",$mojiretu,$pattarn);
			foreach ($pattarn[0] as $key=>$val){
				$replace[] = '<a href="'.$val.'" target="_blank">'.$val.'</a>';
			}
	$mojiretu = str_replace($pattarn[0],$replace,$mojiretu);
	}
return $mojiretu;
}

$test =<<< END
テスト文字列です
このテストでは、URLをリンクに自動変換します
テストURL1
http://yahoo.co.jp
テストURL2
http://google.co.jp ←グーグル
<br />
END;

echo url_henkan($test);

URL自動変換の結果(上のスクリプト)

テスト文字列です
このテストでは、URLをリンクに自動変換します
テストURL1
http://yahoo.co.jp
テストURL2
http://google.co.jp ←グーグル
<br />

このスクリプトについて
PHPスクリプト使用は自己責任でお願いします
preg_matchのURLの判定で場合によってはURLと認識してくれない場合があるかも

URLの正規表現は、http://www.tohoho-web.com/perl/regexp.htm
を参考にさせていただきました