**[[質問箱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

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.041 sec.

OSDN