[php] 自動リンク
問題
URLを含む文字列で、URLを画面に出力する際に、リンクにしたいです。
答え
以下のような形で、正規表現で置換する。
function autolink($s)
{
return preg_replace('/(https?:\/\/[\w!?\/\+\-_~=;\.,*&@#$%\(\)\'\[\]]+)/', '<a href="$0">$0</a>', $s);
}
使用例
echo autolink(htmlspecialchars($str));
autolink() と htmlspecialchars() の順番が逆になると、HTMLタグが画面に表示されるので注意。