WwwSearch は、Webサーバー上のファイルから、特定の文字を含むファイルを検索する機能をもった CGI スクリプトです。フリーソフトとして配布しています。商用・使用を問わず、利用・改造・流用・再配布はご自由にどうぞ。雑誌の CD-ROM に収録される場合は、連絡を希望します。
jcode.pl は、Utashiro 氏が開発、配布されている漢字コード変換ライブラリです。Utashiro 氏に感謝いたします。
あらかじめ検索用のインデックスを作成しておくタイプではなく、検索の都度、全文を検索するタイプですので、設置は簡単ですが、Webサーバーには多大な負荷をかけてしまいます。多量のファイルを対象に検索を行う場合は、Namazu などのインデックス作成型検索エンジンのご利用をオススメします。
検索対象ファイルは、同じWebサーバー上にあるもののみとなります。他のサーバーにあるファイルを検索することはできません。どうしても検索したい場合は、後述の説明を参照してください。
速度向上やサーバー負荷低減のため、あまり厳密な検索を行っていません。たまに、誤った語句が検索されたり、検索されなかったり、検索結果が文字化けすることもありますので、ご了承ください。
検索結果には、ヒットしたファイルのタイトル、ファイル名、最初にヒットした部分の数行が表示されます。ヒットしたすべての行が表示されるわけではありません。
<TITLE>〜</TITLE>は1行で記述してください。
検索対象とできるのは、.htm や .txt などのテキストファイル(Windowsのメモ帳などで編集できる形式)のみです。Excel や Word のファイルを検索することはできません。
Ver3.09 | 検索の高速化やバグ修正など。(2001.5.9) |
---|---|
Ver3.08 | サイト移転に伴う説明などの修正。 |
Ver3.07 | @ARGVで引数を受け取れないサーバーに対応。 |
Ver3.06 | 複数の全角スペースがあるときの不具合を修正。 |
Ver3.05 | Ver3.04修正時の不具合を修正。 |
Ver3.04 | perl4で、ファイルの検索が途中で終わってしまうことがあるという問題に対応。 |
Ver3.03 | $how_many_linesの指定が無視されるというバグを修正。 |
Ver3.02 | 検索結果のタイトルが文字化けすることがあるというバグを修正。検索結果が太字にならないことがあるというバグを修正。Macintosh形式の改行コードの場合に検索結果が全文になるというバグを修正。 |
Ver3.01 | perlのバージョンにより、検索結果が文字化けすることがあるというバグを修正。 |
Ver3.00 | 「ブラウブ」が「ブラウザ」にマッチしてしまうというバグに対処。その代わり若干処理速度に影響有り。JISコードの検索対象ファイルにも対応。 |
CGIの設置経験の無い方は、まず、「とほほのCGI入門」などを参考に、簡単なCGIの設置練習を行ってください。
wwwsrch.cgi を、メモ帳などのテキストエディタで開き、★ 印の項目を説明に従って変更してください。
下記のファイルをサーバーに転送してください。この時、それぞれのファイルの改行コードが、サーバーに適したものになるようにしてください。サーバーがUNIXの場合はパーミッションも変更してください。
ファイル | パーミッション |
---|---|
wwwsrch.cgi | 755(rwxr-xr-x) |
wwwsrch.log | 666(rw-rw-rw-) |
jcode.pl | 変更不要 |
検索窓を貼り付けたいページに、以下の記述を追加してください。wwwsrch.cgi の部分は、wwwsrch.cgi を設置したフォルダに合わせて適切に変更してください。例えば、cgi-bin の下に設置した場合は cgi-bin/wwwsrch.cgi となります。
<FORM METHOD="POST" ACTION="wwwsrch.cgi"> <INPUT TYPE="text" NAME="WORD"> <INPUT TYPE="radio" NAME="ANDOR" VALUE="and" CHECKED>AND <INPUT TYPE="radio" NAME="ANDOR" VALUE="or">OR <INPUT TYPE="submit" VALUE="検索"> </FORM>
もしくは単に、wwwsrch.cgi へのリンクを追記してください。
<A HREF="wwwsrch.cgi">このサイトを検索</A>
検索結果のジャンプ先のアドレス(URL)が、期待したものと異なる場合、例えば、http://xx.yy.zz/aa/bb/index.htm へのリンクになって欲しいのに、../cc/dd/index.htm へのリンクになってしまう場合は、wwwsrch.cgi の382行目あたりの
# $target =~ s|○○|△△|;
という行を次のように変更してください。
$target =~ s|../cc/dd|http://xx.yy.zz/aa/bb|;
ここで、「$target =~ s|文字列A|文字列B|;」は、「文字列A」を「文字列B」に置換することを意味します。
置換は、リンクにマウスを乗せたときにステータスバーに表示されるものではなく、必ず、HTMLソースの、「<A HREF="○○">」の ○○ の部分に対して行ってください。
$target_dir に http://〜 で始まるアドレスを指定しても、他サーバーのファイルを検索することはできません。どうしても検索した場合は、CGIを設置するサーバーに検索したいドキュメントファイルのコピーを置き、これをCGIサーバーで検索し、上記のアドレス置換を用いてサーバー名を置換して表示するようにしてください。