検索フォームで C++ の様な+を含む文字を検索させるには?

[上に] [前に] [次に]
けいゆうの母 1999/06/10(木) 17:50:33
とほほさんの検索フォームを使わせていただいています。
検索キーワードを C++ として検索すると、検索対象のHTMLにはC++
の文字列が含まれているはずなのに、検索結果が戻ってきません。
+という文字列を検索させるには、どうしたらよいのでしょうか?
CGIスクリプトはド素人です。よろしくお願いします。

zizz [HomePage] 1999/06/13(日) 13:25:15
誰も答えないようですが...

「検索結果が戻ってきません。」というのは具体的にどうなっているのでしょうか?

wwwsrch.cgiを実行したことがないのでわかりませんが、
キーワードに "C ++" (""で囲ってある部分がキーワード)と入力した場合、
表示結果のURLに "C+%2B%2B"という文字が含まれていれば、正常に処理されていると思うのですが。

キーワードをCGIのパラメーターにエンコードすると、
キーワード中のスペースが+になり、+が%2Bになるはずです。

けいゆうの母 1999/06/14(月) 10:18:43
ZIZZさん、ありがとうございます。

「検索結果が戻ってきません。」の状態は、結果を表示させる画面自体
は返ってくるのですが、中身がない状態です。つまり、検索結果という
タイトル、さらに絞り込むためのフォームと実行ボタンまでは表示され
ています。
本来ならその後に、検索結果であるはずのC++という文字列を含むはず
のHTMLファイルへのリンク、および、C++という文字列の前後何行かと
、検索終了という文字が表示されるはずなのですが、なぁんにも表示さ
れていないものが返ってきます。

表示結果のURLには、../../wwwsrch.cgi というCGIをおいてある場
所が表示されていて、C+%B%2Bという文字は含まれていません。これは
C++というキーワード以外を入力して、正常に検索が表示された場合も
同様の状態です。

とほほさん作成のwwwsrch.cgiには、何も手を加えていないのですが、
何らかの加工を加えることによって、+を%2Bにエンコードすることが
可能になるのでしょうか?

お知恵をかして下さい。

けいゆうの母 1999/06/14(月) 10:20:51
ZIZZさん、ありがとうございます。

「検索結果が戻ってきません。」の状態は、結果を表示させる画面自体
は返ってくるのですが、中身がない状態です。つまり、検索結果という
タイトル、さらに絞り込むためのフォームと実行ボタンまでは表示され
ています。
本来ならその後に、検索結果であるはずのC++という文字列を含むはず
のHTMLファイルへのリンク、および、C++という文字列の前後何行かと
、検索終了という文字が表示されるはずなのですが、なぁんにも表示さ
れていないものが返ってきます。

表示結果のURLには、../../wwwsrch.cgi というCGIをおいてある場
所が表示されていて、C+%B%2Bという文字は含まれていません。これは
C++というキーワード以外を入力して、正常に検索が表示された場合も
同様の状態です。

とほほさん作成のwwwsrch.cgiには、何も手を加えていないのですが、
何らかの加工を加えることによって、+を%2Bにエンコードすることが
可能になるのでしょうか?

お知恵をかして下さい。

mm 1999/06/14(月) 12:50:27
ここのラウンジでは、「C++」で正常に検索できるようですが…

全角と半角文字が違ってるってことはないでしょうか?
また、C++の文字がタイトルにしかないってことはないでしょうか?
1999/05/30 2.05 より前のバージョンでは、タイトルは、検索対象には
ならないのですが…
タイトルが検索対象に含まれるようになったのを今知りました。
ありがとうございます>とほほさん

mm 1999/06/14(月) 12:51:40
ごめんなさいm(_ _)m
ラウンジの検索ではなかったのですね。失礼しました。

mm 1999/06/14(月) 13:25:23
アホな回答をしてしまったので、wwwsrch.cgi Ver3.04を覗いてみました。
ザッと見てみたところ、検索フォームでは正規表現検索が行われるようです。
ですから、「C++」にマッチさせるには、「C\+\+」とすればいいんじゃない
でしょうか?(一度試してみてもらえます)

また、正規表現検索を望まない場合は、ソース中の以下のコメントを外せば、
「C++」でも検索できると思います。
 #for ($i = 0; $i <= $#words; $i++) {
 # $words[$i] =~ s/([\+\*\.\?\^\$\[\-\]\|\(\)\\])/\\$1/g;
 #}

ただし、正規表現検索のままにしておいた方が強力な検索が可能です。
(なお、ラウンジでは、日本語文字コードの関係か、正規表現検索は
できないようになってます…このため「C++」で検索可能)

けいゆうの母 1999/06/15(火) 09:10:18
mmさん、ありがとうございます。

確かに、検索キーワードを「C\+\+」と指定すると、ちゃんと目的の検
索結果が返ってきました。
う〜ん。しかし、素直にキーワードを「C++」として検索することはで
きないものなんでしょうか?

自分だけでこの検索フォームを使うんでしたら、この点に注意してキー
ワード設定したらよいと思うんですが、複数の人で使う検索フォームに
したいので、キーワード設定もなるべく素直に入力できるものでありた
いと思っています。
やはり、正規表現検索をはずす方法しかないんでしょうか〜???

hiro-kim 1999/06/15(火) 09:46:06
わからない。

  やはり、正規表現検索をはずす方法しかないんでしょうか〜???

って,素直にキーワード指定したい,正規表現としての特別な意味を持たせたくないのだから,はずせばいいんじゃないですか。

シンプル検索か,正規表現検索か,のラジオボタンが使えるよう改造してもいいですけれど,「CGIスクリプトは素人です」とおっしゃっておいでですし……

mm 1999/06/15(火) 21:33:35
>わからない。
うーん、ホント、妙ですよね?
いや、皮肉でもなんでもなく、マジで不思議なのです>けいゆうの母さん

この際、ラウンジの将来のためにも、どのような解決策を望まれているのか、
もう少し詳しく教えて頂けませんでしょうか?
例えば、とほほさんに、素直な検索の方をデフォルトにして欲しいと
要求しているのか?
それとも、具体的な解決策は分からないけど、単にスクリプトを
変更したくないだけなのか?
さもなくば、「コメントを外す」という言葉の意味が分からないとか?

けいゆうの母 1999/06/16(水) 10:28:13
hiro-kimさん,mmさん,コメントありがとうございます。(感謝)

"正規表現検索"をキチンと理解していなかった私...
ド素人と思って、何卒ご容赦を。
mmさん、hiro-kimさんのおっしゃっていることが、よーやく理解
できました。(ド素人もそれなりに勉強いたしました。)

"コメントを外して"やってみることにします。
成功したら、「解決チェック」します。

mm 1999/06/16(水) 22:43:25
>"正規表現検索"をキチンと理解していなかった私...
あっ、なるほど、そちらでしたか(^^;
ぜんぜん的外れでしたね…勉強になります。

>"コメントを外して"やってみることにします。
>成功したら、「解決チェック」します。
よろしくお願いします。
結果が分かると、安心できます。

けいゆうの母 1999/06/17(木) 09:06:25
[[解決]]
バンザイ!mmさんのアドバイス通りコメントを外して、目的の検索結果
を得ることができるようになりました。
解決です!

貴重なアドバイスを下さったmmさん、本当にありがとうございました。
勉強になりました。(感謝、感謝)

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