99章.お役立ちperlプログラム

99.9.サーチャーmini(DbRefer)

いわゆる検索エンジンですが,検索キーワードを含むファイル中のレコードを表示するスクリプトです。

検索するロジックがエレガントではありませんが,分かり易いようにループで表現しました。


デモ オカルト系の単語ならOKですよ(^^;
検索キーワード :
半角カタカナ文字は使わぬよう,お願いします

複数の単語は半角カンマ(,)で区切る
デモでは,* + ?の三つの(正規)文字は入力できません

条件設定 :
一つ以上のキーワードを含む(or検索)
全てのキーワードを含む(and検索)

最大検索数 :

 


99.9.1.主な特徴

  1. 指定したURL階層以外のページからの不正利用を防止します
  2. 検索キーワードでor検索とand検索ができます
    検索キーの区切りは半角カンマ(,) @x = split(',', $keywd);
    もちろん変更可能です
  3. 半角英字の大小は区別しません if ($d =~ /$_/i)
  4. 検索キーの履歴を記録します
  5. 一致するレコードの表示件数を制限できる while(!eof(IN) && $i <= $max)
    必要以上のデータ流失を,防ぎたい人向け
    無制限にしたい人は while(!eof(IN)) とする。正規表現によっては根こそぎデータが…
  6. *,+,?などの正規表現が利用できる
  7. 動作経過表示つき if (($rc % 2000) == 0)
    ここでは,2,000件読む毎にテキストを表示 Now!
99.9.2.設置方法

dbrefer.txt サーチャーmini DbRefer.pl

をダウンロード後に,自分の環境に合わせて修正して下さい。

主な修正箇所はベースになるURLのパスとファイル名です。

$base = 'http://www.hogehoge.(or|ne).jp/~foo/'; #ベースになるURL
      http://www.hogehoge.or.jp/~foo/ か
      http://www.hogehoge.ne.jp/~foo/ の階層下でのみ動作
$file = 'db.txt'; #検索されるファイル
$log = 'dblog.txt'; #検索キーを記録するファイル

修正したスクリプトをftpで/home/foo/(任意)ディレクトリへ転送します

kibita(*)cd /home/foo
kibita(*)put dbrefer.txt dbrefer.cgi
kibita(*)quote site chmod 705 dbrefer.cgi
kibita(*)put db.txt
kibita(*)quote site chmod 604 db.txt
kibita(*)touch dblog.txt
kibita(*)quote site chmod 606 dblog.txt

99.9.3.ファイル中の漢字コードの扱い

本スクリプトは,ファイル中で使用されている漢字のコードが,以下の条件で作られています。

$file = 'db.txt'; #検索されるファイルは,eucコード
$log = 'dblog.txt'; #検索キーを記録するファイルは,sjisコードに変換されます

フリーソフト『ページブラウザ』がありますのでダウンロードするか
(窓の杜:エディタ・ファイル操作:ファイル閲覧 166KB
<ftp://ftp.forest.impress.co.jp/pub/win/util/convert/pgbrow/pgbr32.lzh>)
または,nkf(unix系)などを利用して「検索されるファイル」の漢字コードをeucに変換して下さい。


[HOME][戻る]

Copyright (c)1998 GOMASUKE
Since 03/24/1998, Last Updated 03/24/1998