最初に正規表現について学ぶ必要があります。これらはプログラミングの一般的な概念であり、PHP マニュアルよりも読みやすい場所があります。regular-expressions.infoを試してください。
特定の質問については、文字クラス パターンが必要です[...]
。括弧内の任意の文字に一致します。先頭にハットを付けて記述すると、括弧内にない任意の文字に一致します: [^...]
. 一致しないすべての文字を何も置き換えたくないので、次の関数を使用できますpreg_replace
。
preg_replace("/[^...]/gu", "");
スラッシュは必須の区切り記号です (スラッシュは伝統的なものですが、他にも使用できるものがあります)、「g」は「グローバル」を意味し、「最初のものだけでなく、すべての出現箇所を置き換える」、「u」は「Unicode」を意味します。 、これにより、最後にアラビア文字とその奇妙な特殊文字をキャッチできます。
ここで、ドットを配置したすべての文字を一覧表示できます。または、文字範囲を指定できます。たとえば、[^a-zA-Z0-9,.\/+&-]
英数字の任意の文字と、末尾の特殊文字 :p を除くすべての特殊文字に一致します。バックスラッシュを使用してスラッシュをエスケープする必要があることに注意してください (そうしないと正規表現が終了するため)、最後にマイナス記号を付ける必要があります (そうしないと、文字範囲として解釈されます)。必要に応じて他の言語に拡張できます (私はアラビア語のエンコーディングに精通していません)。