例えば、「キーワード1 キーワード2」などの場合、まず全角スペースを半角スペースに変換して半角スペースに統一仕様と思います。
そして、半角スペースで区切って、「キーワード1 AND キーワード2」みたいな漢字で検索しようと思うのですが、スペースをいっぱい入れると「キーワード1AND AND AND キーワード2」みたいな感じになってしますのですが、普通はどうするのでしょうか?
http://php.benscom.com/manual/ja/function.preg-split.php
全角 -< 半角の変換は終わっているとして、preg_split で正規表現を使うと楽でしょう。
使い方は、
preg_split("/ +/","分割する文字列" );
です。
http://php.benscom.com/manual/ja/function.preg-split.php
全角 -< 半角の変換は終わっているとして、preg_split で正規表現を使うと楽でしょう。
使い方は、
preg_split("/ +/","分割する文字列" );
です。
有難うございます。勉強になりました。
普通は、と言われると難しいですが私なら
$str = 'キーワード1 キーワード2'; //キーワード $search_str = implode(' AND ', explode(' ', trim(mb_ereg_replace('[ ]{2,}', ' ', $str))));
強引に短くしました。
2文字以上の空白(全角・半角共)の連続を半角空白1つに置き換え、先頭と末尾の空白を取り除き、半角空白でexplodeし、' AND ' でimplodeすることで一気に検索用の文字列を作っています。
文字列が、キーワード1で始まって、スペース(複数可)、キーワード2で終わるというパターンであれば、以下の正規表現の置換で可能です。mbereg_replaceの1つ目の引数のパターンが、スペース1つ以上にマッチし、それを" AND "に置き換え、元の変数に格納されます。
$str = "キーワード1 キーワード2";
$rc = mbereg_replace("[ ]+", " AND ", $str);
但し、これだとキーワード1と2の間以外にもスペースが混ざっているとうまくいかなく、あらかじめ取り除いておく必要があります。
多分、質問者の方が意図されているのは?
$keyword = preg_replace('/\s+/', ' ', $keyword);
$keyword = preg_replace('/ /', ' AND ', $keyword);
ではないかと思われます。
みなさん有難う御座いました。勉強になりました。
有難うございます。勉強になりました。