• 締切済み

絞込み検索(and検索)について

PHPの勉強をしています。色々試してみたのですが解決までいたらなかったのでご相談させて頂きます。 テストで検索を掛けたら下記のようなエラーが発生しました。 Warning: mb_convert_encoding() [function.mb-convert-encoding]: Unable to detect character encoding in C:\Program Files\xampp\htdocs\PHPSAMPLE\sample_php\search.php on line 19 上記のエラーは $KeyWord=mb_convert_encoding($KeyWord,"Shift_JIS","auto"); を外す事でエラーにならず検索する事ができました。 ■ソース --------------------------------------------------------------------------- 13 if($_GET["key"]==""){ 14 print"キーワードを入力してください"; 15 }else{ 16 $KeyWord=$_GET["key"]; 17 $KeyWord=htmlspecialchars($KeyWord); 18 $KeyWord=mb_convert_encoding($KeyWord,"Shift_JIS","auto"); 19 $KeyWord=mb_convert_kana($KeyWord,s); 20 $ArrKeyword=explode(" ",$KeyWord); --------------------------------------------------------------------------- つづいて、区切りに使われるスペースを「半角」「全角」どちらでも対応できるように 「全角スペース」が入力された場合、すべて半角スペースに統一するようになっているはずなんですが 例)フルーツ リンゴ と全角スペースで絞り込んだ場合。検索結果が0と表示されてしまいます。 半角スペースで絞り込んだ場合。表示結果が1件と正常に表示されます。 ■ソース --------------------------------------------------------------------------- 13 if($_GET["key"]==""){ 14 print"キーワードを入力してください"; 15 }else{ 16 $KeyWord=$_GET["key"]; 17 $KeyWord=htmlspecialchars($KeyWord); 18 $KeyWord=mb_convert_kana($KeyWord,s); 19 $ArrKeyword=explode(" ",$KeyWord); --------------------------------------------------------------------------- mb_convert_kanaで「全角」スペースを「半角」に変換するように設定し explodeで文字列を半角スペースで分割するようにしているはずなんですけど うまく機能しません。。。 記述方法が間違っているのか?何かがたらないのか? 自分なりに考えたのですが改善策が見つかりません。 どなたか知恵を貸して頂ければと思います。 宜しくお願いいたします。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

とりあえず mb_convert_encoding($KeyWord,"Shift_JIS","auto"); じゃなくて mb_convert_encoding($KeyWord,"SJIS","auto"); そのへんは厳密にしないといけないらしい

maxves
質問者

お礼

アドバイスを元に1から全てを見直した結果。 mb_convert_kanaの箇所も厳密に記載した所、全角半角スペースが判別できるようになりました。 ですが、mb_convert_encodingの部分は相変わらず何を試してもエラーがでて気になる所ですが、抜いても検索に支障がなかったので今回は、設定するのを諦めました。 mb_convert_encodingは時間をみつけて解析するつもりです。 この度はありがとうございます。

maxves
質問者

補足

ご回答ありがとうございます。 アドバイスをもとに修正してみましたが改善しませんでした。 Warning: mb_convert_encoding() [function.mb-convert-encoding]: Unable to detect character encoding in C:\Program Files\xampp\htdocs\PHPSAMPLE\sample_php\search.php on line 19 mb_convert_encoding($KeyWord,"SJIS","auto"); 以外にも厳密にしないといけない箇所があるのでしょうか。。。

関連するQ&A

専門家に質問してみよう