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 />
このテストでは、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
を参考にさせていただきました