hamada
bungu****@leo*****
2005年 10月 7日 (金) 16:23:50 JST
こんにちわ。 On Fri, 07 Oct 2005 11:19:59 +0900 高橋 <ttaka****@ybb*****> wrote: > osCommerce 2.2 日本語版でも、半角文字の大文字小文字は同じ扱 > いで検索してくれていますが、全角、半角は無視してくれません。 MySQLのlikeそのまんまですからねぇ(^_^;) > 1.全角、半角、大文字、小文字 ←全て無視 当方は↓こんな風にしてるみたいです。 > $where_str .= "(pd.products_name like '%" . > addslashes(mb_convert_kana($search_keywords[$i], 'a')) . "%' or > pd.products_name like '%" . > addslashes(mb_convert_kana($search_keywords[$i], 'A')) . "%'"; > > $where_str .= " or p.products_model like '%" . > addslashes(mb_convert_kana($search_keywords[$i], 'a')) . "%' or > p.products_model like '%" . > addslashes(mb_convert_kana($search_keywords[$i], 'A')) . "%'"; > > $where_str .= " or m.manufacturers_name like '%" . > addslashes(mb_convert_kana($search_keywords[$i], 'a')) . "%' or > m.manufacturers_name like '%" . > addslashes(mb_convert_kana($search_keywords[$i], 'A')) . "%'"; > if (isset($HTTP_GET_VARS['search_in_description']) && > ($HTTP_GET_VARS['search_in_description'] == '1')) $where_str .= " or > pd.products_description like '%" . > addslashes(mb_convert_kana($search_keywords[$i], 'a')) . "%' or > pd.products_description like '%" . > addslashes(mb_convert_kana($search_keywords[$i], 'A')) . "%'"; (※当方環境ではtep_parse_search_string()で「空白区切り化」のため文字列 が"sKV"されている→この段階ではそういった変換が挟まらない) これだけでは言われてる機能に足りませんが。 "a"→strtoupper/strtolower→"A"としたものを、更にorしとく手も考えられま すが、これってあまりにバカっぽいような(^^;; なおかつ、ここまでしても「AbCd」みたいな被検索文字列には対応出来ない →検索されるショップ側のデータを、なるべく(半角)正規化しといたほうがい いんでしょね。 /adminでPOSTされたデータを、insertする前に"a"しとくとか。 はまだ ※ 文中の"引数"は、全てmb_convert_kana()のオプションスイッチです