サイト内検索 あるid内だけの検索
こちらの掲示板は終了しました。ご質問などはサポートセンターをご利用ください。
最近、お世話になりっぱなしの美容ベースです。
北を向いて土下座!するので許してください。
今回は「サイト内検索」に興味をもちました。
使ってみたいのですが、ぜひ使いたい機能があります。
それは、
●全ての検索対象ページの、「div id=ターゲット」のターゲット内だけを検索させることです。
この機能があれば、私の希望が全てかなうのですが、
私の知識では、中身を見てもわかりません。
可能にする方法があれば、ご教授ください!
よろしくお願いいたします。
- Re:サイト内検索 あるid内だけの検索
- 和田 - 2009-02-17 19:20:10へい!できますよっ!カスタマイズすればの話ですが・・・。
できればコメント文でセパレートするほうがらくだと思います。
<!--searcharea-->から<!--searcharea-->までの中を検索って事ですね。
やるとするとどこかのfor文をホニャララすればそうなります。
標準の状態ではできませぬ・・・。ごみんなさい・・・。
- Re:Re:サイト内検索 あるid内だけの検索
- 美容ベース - 2009-02-18 23:43:22即答ありがとうございます!
カスタマイズが必要なんですね。
なんとか、ホニャララしてみます!
ごみんなさいなんてとんでもないですよー
毎度毎度ありがとうございます!!
- Re:Re:Re:サイト内検索 あるid内だけの検索
- 和田 - 2009-02-20 02:57:55一応ヒント的なものを。
if($html =~ /<!--contents-->(.*?)<!--contents-->/si){
$contents = $1;
}
と、やるとコメント「<!--contents-->」でくくられた中のHTMLタグが$html変数内に入ります。<!--contents-->というコメントが入っていない場合は処理が実行されません。という意外と簡単なロジックなんですが、正規表現というちょっぴりわかりづらいカテゴリのテクニックなので、なんとか頑張ってみてくださいっ!
当方のサイト内検索だとHTMLを1つずつチェックしていくんですが、HTMLファイルを読み込んだあとにこの処理を追加すれば特定の部分のみをピックアップできると思いますのでっ!
- Re:Re:Re:Re:サイト内検索 あるid内だけの検索
- 和田 - 2009-02-20 02:58:25まちがいました。$contents変数内にはいるんですね。すいません・・・。
- Re:Re:Re:Re:Re:サイト内検索 あるid内だけの検索
- 美容ベース - 2009-02-20 18:11:48ヒント、ありがとうございます!
HTMLしか理解できないので、戸惑ってしまいますが、
これを機会に勉強してみようかと思います。
これを、正しい場所に入れるということですよね。
初心者ながらに、なんとか探し出してみます。
いつも、ご丁寧な対応、
っありがとうございますっ!!!
- Re:Re:Re:Re:Re:Re:サイト内検索 あるid内だけの検索
- 和田 - 2009-02-20 23:59:17いえいえ~。どいたしますて~。うまいこといかなかったらご質問くだされ~!
- Re:Re:Re:Re:Re:Re:Re:サイト内検索 あるid内だけの検索
- pow110 - 2009-05-22 15:08:53はじめまして。
私の最近こちらにお世話になりっぱなしのpow110と申します。
私もファイル内の特定の箇所内を検索対象にしたく
美容ベースさんと和田さんのログを参考に
if($html =~ /<!--contents-->(.*?)<!--contents-->/si){
$contents = $1;
}
をsearch.cgiのHTMLファイルを読み込んだあとと思われる箇所に入れてテストしてみるも
500エラーです。。。
正しい場所を間違っているのかとgoogle先生等で調べてみましたが
なかなかわヒントのあるページに辿り着けず戸惑っています。
どうかヒントをいただけませんでしょうか?
3サイズは129.3/129.3/129.3 配偶者:無 産地:道産です。
- Re:Re:Re:Re:Re:Re:Re:Re:サイト内検索 あるid内だけの検索
- 和田 - 2009-05-22 15:10:20その部分を取り除くと普通に動きますか?
- Re:Re:Re:Re:Re:Re:Re:Re:Re:サイト内検索 あるid内だけの検索
- pow110 - 2009-05-22 15:20:45ハイ、普通に動くんです。
私のいれる場所が違うのだと思われます。。。
- Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:サイト内検索 あるid内だけの検索
- 和田 - 2009-05-22 15:47:01う~む・・・。ちなみに文字コードはShift_jisだったりするでしょうか・・・。
- Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:サイト内検索 あるid内だけの検索
- unknown - 2009-05-22 15:54:13Shift_jisです。
元のファイル(私がいじる前)をupすると動きますが
例の呪文を入れると500Errorです。
- Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:サイト内検索 あるid内だけの検索
- 和田 - 2009-05-22 15:56:47となると、文字コードに起因する問題かもしれませんね・・・。
と、いうのもPerlはShift_jisのダブルバイトを扱うとまぁよくエラーになるのです。
HTML側の文字コードをUTF-8かEUC-JPにするか、読込時にコンバートする必要があるかもしれませんね。
- Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:サイト内検索 あるid内だけの検索
- pow110 - 2009-05-22 16:04:20私が手を加えて保存する時に何かまずい事をしているのでしょうか?
再度テストしてみましたが、私が加えた箇所をなくすと
正常に動きます。
else{
#対象がファイルの場合
$filecnt++;
$checkfile = $dir . $file;
push @files, "${dir}${file}";
@checktype = split(/\./ , $checkfile);
if(($checktype[-1] eq "html" || $checktype[-1] eq "htm") && index($notargetfile,$checkfile) == -1){
flock(FH, LOCK_EX);
open(FH,"${checkfile}");
@gethtml = <FH>;
close(FH);
flock(FH, LOCK_NB);
if($html =~ /<!--contents-->(.*?)<!--contents-->/si){ ←ここに入れてみたのですが…
$contents = $1;
}
$gethtml = join('',@gethtml);
$tmphtml = $gethtml;
$gethtml =~ s/\n//g;
$gethtml =~ s/\t//g;
#タグを全部消去
$texthtml = &getText($gethtml);
$previewhtml = $texthtml;
$texthtml =~ tr/A-Z/a-z/;
$flag = 1;
for($keycnt = 0;$keycnt < @keyword;$keycnt++){
if(index($texthtml,$keyword[$keycnt]) == -1 && $keyword[$keycnt] ne '@allfiles'){
$flag = 0;
}
}
- Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:サイト内検索 あるid内だけの検索
- pow110 - 2009-05-22 16:05:11すみません!
お返事頂いていたの見逃していました。
文字コードが起因するんですね。
もう少し調べてみます。
- Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:サイト内検索 あるid内だけの検索
- 和田 - 2009-05-22 16:06:20あ、いちどプログラムをzip圧縮してアップしてください!ひょっとしたらうまくいけるかもしらんので。
- Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:サイト内検索 あるid内だけの検索
- pow110 - 2009-05-22 16:09:22upします。
よろしくお願いします。
- Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:サイト内検索 あるid内だけの検索
- 和田 - 2009-05-23 06:44:13全角のスペースが入っていましたね。それが原因かもしれませんが、そのほかにも変なとこがあったのでこれをお試しください。
- Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:サイト内検索 あるid内だけの検索
- pow110 - 2009-05-25 11:02:22ありがとうございます!
スペースが入っていたんですね。
大変申し訳有りません。
無事動きました。
お忙しい中ありがとうございました。
感謝です!そちらに向かって敬礼します!
- Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:サイト内検索 あるid内だけの検索
- 和田 - 2009-05-25 11:19:38うむ。くるしゅーない。
コメント欄