文中のURLを自動リンクする方法

CGIテクニック集トップへ





概要

文中のhttp://から始まる文字列を自動抽出し、<a href>タグにより自動リンクします。 メッセージボード5等自動リンク機能があるCGIで使用されています。

必用な処理

  1. パターンをチェックし文字列を変換する

サンプルコード

 my $url_pattern = 'https?:\/\/[\w\.~\/\?&\+=:@%;#\$%,\-]*';
 
 $text =~ s/($url_pattern)/<a href=\"$1\">$1<\/a>/g;

コードの解説

 my $url_pattern = 'https?:\/\/[\w\.~\/\?&\+=:@%;#\$%,\-]*';

URLの正規表現パターンを変数に入れる。この作業は必要ではありません。パターンチェックの際に直接正規表現で記述することができます。スクリプト内に複数同じチェックをするコードがある場合には変数に入れた方が便利です。

 $text =~ s/($url_pattern)/<a href=\"$1\">$1<\/a>/g;

$text内のURLをs///gで置換する。マッチしたURLパターンがそのまま<a href>タグ内と<a></a>の間に入ります。

関連するCGIテクニック

URLのリンク先が有効かチェックする方法