SQLでLIKE文を使用してスペースを%で置き換えてデータベース内の検索を検索します。PHP-絞り込み検索での検索
$in= str_replace(' ','%',$in);
example : 'harry potter is a great book' becomes 'harry%potter%is%a%great%book'
今、私は引用符の内側にあるものを、スペースをスキップしたい
' "harry potter" is a great book' become 'harry potter%is%a%great%book'
ように、グーグルが行うよう、ユーザーが引用符を使用できるようにすることで、私の検索を絞り込みたい、またクエリを含めることができます複数の二重引用符。これはアウトでしょう
$str = '"harry potter" is a "great book"';
// get all matches between quotes
preg_match_all('/".*?"/', $str, $matches);
// do your normal replacement, and remove quotes
$str = str_replace(' ', '%', $str);
$str = str_replace('"', '', $str);
// undo quoted replacements
foreach ($matches[0] as $value) {
$value = trim($value, '"');
$str = str_replace(str_replace(' ', '%', $value), $value, $str);
}
echo $str;
:
harry potter%is%a%great book
しかし、これは完璧にはほど遠いです
' "harry potter" is a "great book"' become 'harry potter%is%a%great book'
引用符が一致しない場合はどうなりますか?例 "" "ハリーポッター"は素晴らしい "本"です。 "ハリーポッター"または "ハリーポッター"が偉大な "または"偉大な "ですか? –
ワイルドカード検索ではなく、全文検索が必要です。 – Devon
@mistermartinだけ ""ハリーポッター "とクエリも二つ以上の引用符のペアを含むことができます – Azhar