**[[質問箱4/583]] [#ae872e12] #author("2018-03-11T21:01:03+09:00;2014-12-17T20:01:51+09:00","","") **[[質問箱/4583]] [#ae872e12] |RIGHT:70|LEFT:410|c |~カテゴリ|| |~サマリ|検索時のエラー| |~バージョン|1.4.7| |~投稿者|[[idea]]| |~状態|完了| |~投稿日|&new{2010-05-27 (木) 18:40:05};| ***質問 [#y56ec5bc] 検索時、boxに入力した場合なのですが、文字と文字の間にスペースを空けてもワンフレーズとして検索がかかってしまいますが、どんな理由が考えられるでしょうか? ***回答 [#s95f7050] - Google とは違い、全角スペースは区切りとして扱われません。例えば、「検索 スペース」で検索をすると"''検索 スペース''"というフレーズを探しに行ってしまい、"検索andスペース"または"検索orスペース"の意味で動作しません。「検索 スペース」のように、区切りとして半角スペースを使用してください。&br;この仕様を変えたいなら、[[質問箱4/85]]を参照してください。 -- &new{2010-05-27 (木) 18:58:55}; -- 質問箱4/85が削除されてしまったので、他の関連ページを。[[dev:BugTrack/746]], [[dev:BugTrack2/233]], [[続・質問箱/565]], [[質問箱4/575]] -- &new{2014-12-17 (水) 20:01:51}; - Google とは違い、全角スペースは区切りとして扱われません。例えば、「検索 スペース」で検索をすると"''検索 スペース''"というフレーズを探しに行ってしまい、"検索andスペース"または"検索orスペース"の意味で動作しません。「検索 スペース」のように、区切りとして半角スペースを使用してください。&br;この仕様を変えたいなら、[[質問箱/4085]]を参照してください。 -- &new{2010-05-27 (木) 18:58:55}; -- 質問箱4/85が削除されてしまったので、他の関連ページを。[[dev:BugTrack/746]], [[dev:BugTrack2/233]], [[質問箱/2565]], [[質問箱/4575]] -- &new{2014-12-17 (水) 20:01:51}; - 解説ありがとうございます。半角スペースで検索してみたところ、条件を満たす検索はされたように思います。「検索 フレーズ」の後方のみにハイライトがなされています。この原因はお分かりになりますでしょうか?? -- [[idea]] &new{2010-05-28 (金) 08:54:01}; - 追加で申し訳ありません。検索結果が表示されたときに、下に検索boxが表示されています。しかし、そこをクリックして検索すると「有効なwikinameではありません」と表示されてしまいます。この原因もわかりましたら、ご教授願います。もしくは、検索結果表示時に同時に表示されるこの検索boxを表示しないようにするにはどうしたらいいでしょうか。(toolbarのようにページ上部に検索boxが常に表示されるようにしているため) -- [[idea]] &new{2010-05-28 (金) 10:01:40}; - 単語未入力時にフォームが非表示になればいいのかな? $type = isset($vars['type']) ? $vars['type'] : ''; $base = isset($vars['base']) ? $vars['base'] : ''; + $bases = ($base == '') ? array() : array($base); if ($s_word != '') { // Search $msg = str_replace('$1', $s_word, $_title_result); $body = do_search($vars['word'], $type, FALSE, $base); } else { // Init unset($vars['word']); // Stop using $_msg_word at lib/html.php $msg = $_title_search; $body = '<br />' . "\n" . $_msg_searching . "\n"; + $body .= plugin_search_search_form($s_word, $type, $bases); } // Show search form - $bases = ($base == '') ? array() : array($base); - $body .= plugin_search_search_form($s_word, $type, $bases); + //$bases = ($base == '') ? array() : array($base); + //$body .= plugin_search_search_form($s_word, $type, $bases); return array('msg'=>$msg, 'body'=>$body); } function plugin_search_search_form($s_word = '', $type = '', $bases = array()) 未入力時にもフォームがいらないのであれば、コメントに変更する部分だけで十分なんですが。 -- &new{2010-05-28 (金) 15:05:20}; - (本当はどんな単語で検索したのかがわからないので、)実際に出力されたHTMLソース(例えば、「ぱんだ パンダ」で検索した場合は <div class="small">これらのキーワードがハイライトされています: <strong class="word0"><strong class="word1">ぱんだ</strong></strong> <strong class="word0"><strong class="word1">パンダ</strong></strong> </div> のようになる)を見ないとはっきりとはいえませんが・・・。[[mbstring]]を使って内部的に「全角英数字を半角に変換」と「半角カタカナを全角カタカナに変換」と「全角ひらがなを全角カタカナに変換」を行っている事が原因ではないですよね。 -- &new{2010-05-28 (金) 15:28:47}; - ソースを見てみたところこのようになっていました。 <p>これらのキーワードがハイライトされています: <strong class="word0">マニュアル</strong> <strong class="word1">原則</strong></p><hr class="full_hr" /> clubskinをEUC版で無理やり利用してみていますが、その辺も関係しているのでしょうか・・・-- [[idea]] &new{2010-05-31 (月) 14:21:16}; - これは、[[CSS]]の問題ですね。デフォルト用のCSSであるskin/pukiwiki.css.phpには、検索ワードの色付け用にstrong.word0~strong.word9の10色を登録しています。しかし、clubskin用のCSSであるcommon/css/container.cssには、デフォルト用のstrong.word0に相当するdiv#mainContents strong.word0しか登録されていませんので、複数の単語を検索すると1つしか色付けされないという結果になります。&br;ちなみに、[[自作スキン]]のclubskinを使っているという情報がなければ、こちらで試験動作なんてできませんでしたが。(素早く確実な回答がほしいなら、問題がない程度に環境を開示された方がいいですよ) -- &new{2010-05-31 (月) 20:29:28}; - わかりました。丁寧にありがとうございます。 -- [[idea]] &new{2010-06-01 (火) 08:59:19}; - 申し訳ありません。いろいろ触って試していますが、結局のところどのように対応したらよいのでしょうか。 --1.検索時にハイライトが複数の検索ワードにも反映されるようにしたい。 --2.検索時に全角スペースでand検索をしたい。 - 当方、1.4.7でクラブスキンを無理やりEUC版で利用しております。 -- [[idea]] &new{2010-06-01 (火) 16:52:48}; - 1.の回答。common/css/container.cssで div#mainContents strong.word0 { background-color: #FF0; } の後ろに、 div#mainContents strong.word1 { background-color:#A0FFFF; } div#mainContents strong.word2 { background-color:#99FF99; } div#mainContents strong.word3 { background-color:#FF9999; } のように必要な数だけ追加していく(ここで例示した色はデフォルトのコピーなので、スキンに合わせて修正してください) -- &new{2010-06-01 (火) 18:26:58}; - ありがとうございます。一応自分もこのようにやってみたつもりでしたが、うまくいきませんでした。コピペで能がないですけども、この通りでうまくいきました。ありがとうございます。 -- [[idea]] &new{2010-06-02 (水) 11:38:25}; - [[dev:BugTrack/746]] -- &new{2010-06-02 (水) 18:06:21}; -- ありがとうございます。1.4.7で試してみましたが、下記のようなエラーが出てしまいました。 Fatal error: Call to undefined function mb_convert_kana() in /格納場所/search.inc.php on line 52 で $vars['word'] = mb_convert_kana($vars['word'], 's'); の部分です。 素人で申し訳ありませんが、分かりましたらご教授ください。 -- [[idea]] &new{2010-06-03 (木) 09:01:40}; --- 未定義の関数mb_convert_kanaを呼び出そうとした、というエラーです。今回は、[[mbstring]]モジュールが入っていない(有効になっていない)事が原因だと思われます。 -- &new{2010-06-03 (木) 18:37:13}; - ありがとうございます。php.iniのmbstringの中にこれに関する設定があるということでしょうか? -- [[idea]] &new{2010-06-04 (金) 10:38:22}; - [[mbstring]] -- &new{2010-06-05 (土) 14:20:54}; - mbstringがphpinfoの中に表示されず、うまくいきませんでした。 -- [[idea]] &new{2010-06-07 (月) 10:46:55}; - COLOR(crimson){「組み込まれていない場合や必要な機能が無効になっている場合は、PHPをリビルドして再導入することになります。」} -- [[よっちい]] &new{2010-06-07 (月) 11:57:41}; - すいません。さっくと出現しました。 -- [[idea]] &new{2010-06-07 (月) 13:42:32}; - おかげさまでうまくいきました。皆様こんな素人相手に、懇切丁寧にお付き合いいただきありがとうございました。 -- [[idea]] &new{2010-06-07 (月) 13:49:21}; - [[質問箱4/595]] に続く - [[質問箱/4595]] に続く //#comment