[Perl] 掲示板の入力テキストを整形する

Posted by
ぴろり
Posted at
2006/12/13 03:31
Trackbacks
関連記事 (0)
Comments
コメント (2)
Post Comment
コメントできます
Category
開発メモ カテゴリ

 自作の掲示板では、入力されたテキストのうち行頭が > で始まる行を <i> タグで囲んだり、URL やメールアドレスを思われる文字列に適切なリンクを与えるなどの整形を行なっています。 他にも使えるかも知れないのでコードのメモ。

このエントリーをはてなブックマークに追加  

my $comment =<<'HEREDOC';
テキストテキスト
> 引用されるテキスト
>> 引用されるテキスト
テキストテキスト
文中のURLは自動でリンクされます http://www.yahoo.co.jp/
メールアドレスも自動でリンクされます piroli@example.com
ここは>>>クォートされません
HEREDOC

### 記事登録前にエスケープしてしまう
### Windows + ActivePerl では 
 → 
 に変更
$comment =~ s!^(
)+!!g; # 文頭の連続する改行
$comment =~ s!(
)+$!!g; # 文末の連続する改行
$comment =~ s!"!&quot;!g; # "
$comment =~ s!<!&lt;!g;
$comment =~ s!>!&gt;!g;
$comment =~ s!(
)+!<br />!g; # 改行 → <br />

### 引用文をクォート
$comment =~ s!(<br />|^)(&gt;(?:[^<]*|$))!$1<i>$2</i>!g;
### URLを抽出しリンクを作成
$comment =~ s!(http://[w.:/+-?~=&%]+)!<a href="$1">$1</a>!g; # HTTP "
$comment =~ s!(https://[w.:/+-?~=&%]+)!<a href="$1">$1</a>!g; # HTTPS "
$comment =~ s!(ftp://[w.:/+-?~=&%]+)!<a href="$1">$1</a>!g; # FTP "
### メールアドレスを抽出しリンクを作成
$comment =~ s!([w.-]+@[w.-]+)!<a href="mailto:$1">$1</a>!g; #"

print $comment;
このエントリーをはてなブックマークに追加  



関連記事/トラックバック

関連記事/トラックバックはまだありません

この記事にトラックバックを送るには?

寄せられたコメント (全 2 件中、最新 5 件まで表示しています)

Posted by
ぴろり ◆OLEEi.VOX.ぴろり ◆OLEEi.VOX.
at
2009/05/18 21:19
ID
xNtDrl6I
>夏炉冬扇 さん
こんな辺境ブログの独自CAPTCHAを破る物好きが居るとは思えないのでおそらく手動投稿でしょうね。
海外の安い人件費に物を云わせて手動で投稿して回っているという話を聞いたことがあります。
Posted by
夏炉冬扇夏炉冬扇
at
2009/05/15 21:56
ID
/t9gx0po
こういうコメントは自動なんでしょうか?
自動だったらすごいなぁと思ってしまいました。
全然元の記事に関係ないコメントですみません。
(管理者の判断で削除してもらって全く構いません)

コメントを投稿する

 
 (必須, 匿名可, 公開, トリップが使えます)
 (必須, 匿名可, 非公開, Gravatar に対応しています)
 (必須)
スパム コメント防止のため「投稿確認」欄に ランダムな数字 CAPTCHAについて を入力してから送信してください。お手数ですがご協力のほど宜しくお願いいたします。