0

しばらく探していましたが、入力できる preg-replace パラメータがよくわからないので、同様の質問を見て解決できません。(したがって、回答の各記号を説明していただけますか?)

文字列をフィルタリングし、英数字またはアクセント記号以外のすべてをスペースに置き換えたいと考えています。(この後、 preg_split を使用してそれらのリストを作成します)。

ここでは、私がアクセントとして知っている記号は小文字のみを示していましたが、大文字の変形も保持したいと考えています (いくつか忘れている可能性があります)。私は本当に左の標識が必要です。権利は義務ではありません:

é è ë ï ê                ç ü ö ä ú ó á ã õ ñ å û â ô

データベース(準備済みステートメント)を検索する必要があるため、これが必要です。

現在私は使用しています:

 $terms=preg_split('/\s+/', preg_replace('/[^a-zA-Z0-9À-ÿ]+/', ' ', $_GET['ter']));

しかし、次の例は、標識をそのままにしておかないことを示しています。

url example: mydomain.com/index.php?ter=léopold

$terms=preg_split('/\s+/', preg_replace('/[^a-zA-Z0-9À-ÿ]+/', ' ', $_GET['ter']));
foreach ($erms as $term){echo " term: ".$term;}


Outputs:
term: l� term: opold

What i want it to be:
term: léopold

したがって、アクセント、特に最初のコードブロックの左側に書かれているアクセントを損なわない preg_replace を作成する必要があります

4

1 に答える 1

1

マルチバイトをサポートする mb_ereg_replace、preg_replace を使用する

于 2013-10-24T19:10:55.073 に答える