リンクタグ

[上に] [前に] [次に]
とくめー 1997/11/06(木) 18:30:49
掲示板などで http:// で始まる書き込みを自動的にリンクされるようにできませんか?

Matuda 1997/11/07(金) 15:24:44
自分の掲示板に書き込まれた http:// 〜に自動リンクをはりたいと言う質問ととりました。
あまり自信はないですが、多分掲示板のCGIの中で < を &1t; に >を &gt; に変換するところがないですが、これがあると表示上は同じ < > ですが、HTMLタグとして無効になっています。
これをはずせばそのままHTMLタグとなり、リンクがはられると思います。

やまっち@M&Tcom [E-Mail] [HomePage] 1997/11/07(金) 20:30:23
掲示板書き込み本文中の「http://〜」を自動的にリンクする方法は
私のページの伝言板で使用しています。
http://www2k.biglobe.ne.jp/~mtcom/cgi-bin/guest.cgi

掲示板(伝言板)はセキュリティー上、タグを無効にしておいた方が
安全なのですが、↑↑上のようにURLの書き込みがあった場合、いち
いちコピーしてアドレス欄にペーストしなければならないので、確か
に不便ですよね。

私は掲示板(伝言板)にperlを用いていますが、
置換(変数 =~ s/パターン/置換後文字列/ig;)を使って
それを実現しています。(まだ不具合があるかもしれませんが)

「変数」のところに伝言板本文のスカラ変数を入れ、
「パターン」で「http://〜」のパターンの検出をして、
「置換後文字列」に「<A HREF="〜">〜<\/A>」を
パターンマッチした文字列に付け足してやれば良いと思います。

この処理により、書込者はタグを使用せずにURLを書き込んだだけで
自動的にリンクされるようになるはずです。

例:(書き込まれる本文を「$message」としたとき)
$message =~ s/(http:\/\/[現在試行錯誤中]+)/<A HREF=\"$1\">$1<\/A>/ig;
($1には直前のパターンマッチの括弧内の文字列が入るはず)

↑↑の[現在試行錯誤中]内にはURLで使われると思われる文字を想定して・・・
\w 〜すべての英数字( "_" を含む)
\/ 〜スラッシュ
\~ 〜チルダ
\. 〜ピリオド
\? 〜?(GETの引数で使う可能性有りなので)
etc.
・・・等を入れていますが、他にもまだまだありそうなので
あえて、試行錯誤中として伏せさせていただきました。

やまっち@M&Tcom [E-Mail] [HomePage] 1997/11/07(金) 21:00:36
あ゛っ!!とほほさんのアドレスを見て気が付きました・・・

\- 〜ハイフン
\+ 〜+
\& 〜&
等も必要ですね・・・・。

ということは、

[\w\/\~\.\?\-\+\&]

という事になりますね。(もっと必要かも・・・)

毎度、ごちゃごちゃ追加してすみません。

[上に] [前に] [次に]