• ベストアンサー

検索CGIについて

始めまして よろしくお願いします 今サーチスクリプトを作成しているのですが 「X件見つかりました」 のようにするにはどのようなコーティングにすればいいのでしょうか? 自分なりにはやってみたもののあまり上手くできません 現在のコーティングは インデックス関数でマッチさせています また失敗の原因はマッチの判定の回数が表示されてしまいます 言語はperlです よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • taaaaaaa
  • ベストアンサー率38% (31/80)
回答No.2

こんな感じでいかがでしょうか? index を使っています。 ----------------------------------- open(IN,"$filename") || &error("ファイルが開きません"); $i=0; while (<IN>) { $flag = 0; foreach $pair (@pairs) { if (index($_,$pair) >= 0) { $flag=1; if ($cond eq 'or') { last; } } else { if ($cond eq 'and') { $flag = 0; last; } } } if ($flag == 0) { next; } # 結果を表示(データは、▲区切り) ($no,$date,$tel)= split(/▲/, $_); print "DATE: $date<br>"; print "TEL: $tel"; $i++; #ヒット数 } close(IN); print "$i 件ヒット";

参考URL:
http://joho.boo.jp/
全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

ソースを補足で挙げて下さい。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • CGIでのgrep関数においての質問

    Perl言語で作成するCGIプログラムについての質問なのですが、grep関数をつかって文字のマッチングを試みて、1回目はうまくいったのですが、同じように2回目を同じプログラムで使ったところ、絶対に0件マッチになります。検索対象も、検索文字列も、スカラー変数でだしてみて目で確認して明らかに合致しているのに0件になります。 ちなみに、使用した関数は以下のような感じです。 @hit = grep(/$data1/,@data2); $hit = grep(/$data1/,@data2); $hitでだしてみても0になりますし、@hitも何も入っていません。 grep関数は2回使えないのでしょうか。 検索文字はメールアドレスなのですが、前のプログラムで同じように関数を使って成功していますので、検索文字が原因ではないと思いますが。 ご回答お願い致します。

    • ベストアンサー
    • Perl
  • サイト内全文検索CGI、インデックス無、検索拡張子指定可

    サイト内全文検索CGIを探しており、いろいろなScriptを見てきました。 ですが、自分の理想としている物がみつかりませんでした。 改造も試みたんですが想うようにいきませんでした。 次の条件に当てはまるCGIがありましたら教えてください ・Perlでかかれている ・インデックス作成型ではない ・検索する拡張子を指定できる htmのみ、htmlのみ、txtのみ、または複数指定といった感じです ・検索結果を数件ずつに分けて表示できる 検索すると1件から20件を表示し、次のページで21件から40件を表示するといった感じです 改造された再配布のものでもいいです。 上の様な全文検索CGIを知っていたら教えてください。 宜しくお願いします

    • 締切済み
    • CGI
  • スクリプト作成

    VBScript言語を使用して、前回読込んだテキストファイルの 次の行から読込むスクリプト作成について教えて下さい。 perl言語でseek関数について Webで見つけました。 VBScript言語で可能でしょうか。またSeek関数使用できるのでしょうか。 教えて頂けますでしょうか。

  • match関数とindex関数について

    index関数を次のように用いて、match関数で位置を取りだすことをしたいと考えています。 =index(0/$A$1:A20="休",0) matchは以下の上式を使って、以下のようにします。 =match(1,index(0/$A$1:A20="休",0)) この時、index内において、「休」だけでなく、「祝」も判定したいと考えた場合、上手い式の組み方は考えられるでしょうか。 ご教授願います。

  • 心理テストをCGIで作成しているのですが...

    とあるスクリプトを改造し、心理テストを作成しているのですが、Perlは超初心者なので苦労しています。 もともとのスクリプトは一つの設問に対して最大5種類の回答をラジオボタンで一つだけ選択でき、管理者ページで設問・回答1~5・判定結果をテキストエリアで編集できさらに設問数は新規で登録すると無限に増やせるといった機能です。 これをさらに判定結果の解説をつけたページを作成中ですが、各設問内容・各設問で選んだ回答・各設問に対しての解説文を全て表示させるにはどのようにしたらよいでしょうか? ちなみにもとのスクリプトは『がらくたBOOK(管理人:ひゅうさん)』のサイトにある『TypeChecker』を使用しています。 『がらくたBOOK』URL http://tinkle.cside.com/book/ どなたか分かる方がいたら教えてください。

  • さくらレンタルサーバーでのCGI設置について

    さくらレンタルサーバー(スタンダード)を使って、HPを作成しています。 そこで、HP検索CGI(Free)を設置しようとしたら、500エラーがでて先に進みません。 使用したHP検索CGI(Free)は、Web Search Ver 2.03です。 URL: http://www.web-liberty.net/download/search/index.html#setup perlファイルのコマンドパスは、/usr/bin/perl と /usr/local/bin/perl パーミッションは705、755共にエラーでした。。 送信もアスキーモード(テキストモード)で行いました。 両方を試しましたがエラーでした。 何が原因なのでしょうか? ソース自体はダウンロードしてコマンドパスと『検索開始ディレクトリの相対パス』と『検索開始ディレクトリの絶対パス』以外、いじっていないので、ソースが壊れているということはないと思います。 お手上げ状態で困っています。 助言をお願いいたします。

    • 締切済み
    • CGI
  • CGIが・・・いったい何が問題でしょうか?

    皆様よろしくお願いいたします。 以下の構成のディレクトリをvar/www/htmlに置き localhost/auct/index.cgiとしてindex.cgiファイルにアクセスしようといたしたのですが、500internal server errorとなり(エラーログ; premature end of script headers; index.cgi)、アクセスできません。 index.cgiにアクセスするとstart.shtmlが開く設定になっています。 なお、簡単なCGIファイルを作りvar/www/htmlで動作させたところ正常に動作いたしました。 自分でもかなり調べたり、聞いたりしたのですが解決に至りませんのでどうかご助力お願いいたします。 ....├ [auct] ...........├ [ pl ] ...................├ [ lib ] ...................├ ap.cgi ...................├ category.cgi ...................├ cgi-lib.pl ...................├ comu.cgi ...................├ config.cgi ...................├ image.pl ...................├ index.html ...................├ jcode.pl ...................├ mail.cgi ...................├ mng.cgi ...................├ show.cgi ...................├ usr.cgi ...................└ wwwis.pl ...........├ auction.cgi ...........├ count_down.cgi ...........├ cron.cgi ...........├ index.cgi ...........├ master.cgi ...........├ search.cgi ...........├ start.shtml ...........└ temp.cgi 全てWindowsからasciiで転送してperlのパスも確認済み。 パーミッションはすべて755。 Windowsのapacheでは正常に動作。 httpd.confの設定; <directory "/var/www/html">のoptionsにExecCGIを追加。#addhandler cgi-script .cgi のコメント化。そのほかはデフォルト。

    • 締切済み
    • CGI
  • 自作cgiスクリプト動作に必要なPerlモジュールが判るツール

    初心者です宜しくお願いします 自作cgiスクリプト動作に必要なPerlモジュールが判るツールてありますでしょうか?自作スクリプトを作成し httpd.exe にActivePerl-5.10.1.1006-MSWin32-x86-291086.msi(デフォルト環境でインストール) をインストールした環境にて動作チェックしたスクリプトをサーバーにUPしましたが画像表示がうまくいきません。サーバー業者に問い合わせたところサーバーは問題なく動作してるとのことでユーザースクリプトのサポートは行わないと回答されてしまいました。そこで自作スクリプト動作に必要なPerlモジュールが判るツールとの質問になりました。 どなたかお分かりになる方よろしくお願い申し上げます。

  • 自動構成スクリプト(proxy.pac)のデバッグ方法

    現在Internet Explorerのプロキシ設定で自動構成スクリプト(proxy.pac)を使用して接続先や接続元IPアドレスによってプロキシを切り替えるような運用をしています。 しかし、作成した意図とは異なるプロキシ選択となってしまい原因を調査しているのですが原因が特定できません。 実際にどこの判定で誤っているのかデバッグしようと考え 自動構成スクリプトの内容はjavaスクリプトだと思ったのですが判定に使用している関数は自動構成スクリプトだけで有効な関数のようでjavaスクリプトのデバッグでは解決できませんでした。 どなたか自動構成スクリプトのデバッグ方法やデバッグツールをご存知ありませんでしょうか?

  • 検索機能の作成で困っています

    perl初心者です。 perlでデータ検索の機能をHPにつけようとしています。以下のようなスクリプトを書いたのですが、どうもうまく動かず「失敗」という風に表記されます。フォームのテキストボックスに値が入っている場合はサブルーチンを走らせその値でDB検索するようにしたいのですが、値を入れて検索ボタンを押しても動きません。たぶんif文のところの書き方が間違っていると思うのですがわかりません。。どなたかご教授おねがいします。 #!/usr/bin/perl use DBI; print "Content-type: text/html\;charset=shift_jis\n\n"; print <<"__HTML__"; <html><head><title>test</title></head> <body> <form method= "post" action="test.cgi"> 商品検索<input type="text" name="search" size="30"> <input type="submit" value="検索"></form> __HTML__ if($form{'search'}){&SearchMySQL;} else { print "失敗"; } print<<"__HTMLEND__"; </table> </body></html> __HTMLEND__ exit; sub SearchMySQL{ DB検索 }

    • ベストアンサー
    • Perl