のフリー、シェアCGI・PHPスクリプト・JavaScriptをキーワード、97のカテゴリーから検索できます。スクリプトの登録ご利用は一切無料です。


フリー、シェアCGI・PHPスクリプトをキーワード、96のカテゴリーから検索できます。

 スクリプトをお探しなら当サイトでOK

  •  フリー、シェアのCGI・PHPスクリプトをメインに検索。
  •  ランキングによる評価で人気のスクリプトを紹介。
  •  サンプル(ページ)によるダウンロード前の事前評価。
  •  お気に入りスクリプトへのパーソナルリンクの作成。

 スクリプト登録のメリット

  •  シェアスクリプトでも、掲載は一切無料。
  •  細かなカテゴリー(全97項目)で閲覧者に分かり易く分類。
  •  スクリプトを印象づけるサンプル(ページ)の登録が可能。
  •  ダウンロードランキングの実施による人気度の評価。

当サイトはQ&A掲示板(コミュニティ)の窓口を共有して下さるサイト様を募集しています。

[Q&A掲示板] 共有サイト様募集!

掲示板機能拡張-2


掲示板では、一般的に自動リンク機能といって、書き込み内容にURLが記載されていた場合は、
それを自動的にリンクする機能があります。

今回は、タグ削除関数にその処理を組み込みます。

sub Del_Tag {
   $_[0] =~ s/<.+?>//g;
   $_[0] =~ s/(s?https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/<a href="$&">$&<\/a>/g;
   return($_[0]);
}

とても複雑な正規表現ですが、これでも簡易的処理の自動URLリンク機能です。
実際に完璧なものを作ろうとすると、膨大な量を書かなければなりませんし、理解し難い内容になってしまいます。
なので、実用的にも上記の処理で十分です。

しかし、この場合ですとセキュリティ的にあまり実用的とは言えません。
リンク先へジャンプする前に、ユーザーに警告を表示させます。
なぜかというと、悪意のあるサイトへのリンクだった場合、誤ってクリックして
そのユーザーがウィルスに感染してしまう恐れがあるからです。
警告ページを表示するには、新規にモード関数を定義します。
そして、URLをエンコードし、それをCGIへ渡します。
エンコード処理は、クッキーのサンプルで使用したものを流用します。

sub Del_Tag {
   $_[0] =~ s/<.+?>//g;
   # 一致したURLの取り出し
   @url = $_[0] =~ /s?https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+/g;
   foreach(@url) {
      $url = $_;
      $url =~ s/\%([0-9a-fA-F][0-9a-fA-F])/pack("C",hex($1))/eg;
      $_[0] =~ s/$_/<a href="test.cgi?m=Jump&url=$url">$_</a>
   }
   return($_[0]);
}

# ジャンプ関数
sub Jump {
   print "Content-type: text/html\n\n";
   print "下記のアドレスのジャンプしてもよろしいですか?<br>";
   print "<a href="$in{'url'}" target="_blank">はい($in{'url'})</a>\n";
}

先ほどは、正規表現で発見したURLは、直接リンクへと変換しましたが、
今回は、URLをCGIへ渡すためにエンコードする必要があります。
リンク形式への変換とエンコード処理は同時に行えませんので、
とりあえず、発見したURLは配列へ退避させ、書き込み文にあるURLをすべて探し出します。
そして、割り出したURLを1つずつエンコードし、リンク形式に変換して置換します。

ジャンプ関数では、確認のメッセージを表示させて、URLへのリンクを貼ります。
今回の場合では、URLは何個書き込まれてもすべてリンクされます。
自動リンクされる個数が限定されるスクリプトもいいかもしれません。

scriptEYE