-1

MySQL多言語utf8データベースの全文検索でpreg_replace使用する検索フォーム入力のphp関数で使用するための正規表現が必要です。SQLでphpfilter_varを使用することを検討しFILTER_SANITIZE_STRINGましたが、最終的にはpreg_replace次のようになりました。

これらの機能が欲しい:

  1. スペースを保持し、連続する場合は 1 つだけ (シリアル スペース)
  2. 二重引用符を保持し、複数の場合は1つだけ続けます(で使用できるようphraseIN BOOLEAN MODE
  3. -& +& '~' を保持し、連続する場合は 1 つだけ
  4. 多言語にしたいので、Unicode (utf8) 文字も考慮する必要があります
  5. アクセントを考慮する必要はありません。

これは私がやったことです:

$q = addslashes($q);
$q = preg_replace('/[^\w\d\s\s+\p{L}]/u', "", $q);

"しかし、出力は引用符( )とマイナス( )のように私を満足させません-。検索ボックスで使用する安全なクエリ文字列を作成するにはどうすればよいですか?

を使用するよりも良い方法はありpreg_replaceますか?

4

1 に答える 1