0

私は複数の言語で動作する Web サイトを持っており、複数の言語の文字列からすべてのジャンクを取り除くための php 関数を探しています。

例: 次のコードをヒンディー語でデータベースに挿入していますが、他の言語でも同じです。

कमबख़्त को गाली भी सलीक़े से नहीं दी जाती...\'

不要な ...\' 文字を取得していることがわかります。

これは複数の言語ではうまくいきません

$newString = preg_replace('/[^a-z0-9]/i', ' ', $text); 

私はまた、ここで何が起こっているのか本当に理解していないことも試しましたが、これもうまくいきません。

$newString = preg_replace(''/^[\p{L}\p{M}\p{Nd}]{2,}$/u'', ' ', $text);  

私は本当に、キーボード上の文字や数字以外のものをすべて削除する必要があります.

!@£$%^&*()_+=.<>/, etc etc

文字列内の ...\' が実際に表示されるものではないかどうかはわかりません。

$newString = str_replace("...\'", "", $text);

これは、多言語への私の最初の本格的なダイビングです。

4

1 に答える 1

5

私はこれを使用してそれらを取得することができました:

$test = 'कमबख़्त को गाली भी सलीक़े से नहीं दी जाती...\\';
$test = preg_replace('@[^\x{0900}-\x{097F}]@u', '', $test);

出力

कमबख़्तकोगालीभीसलीक़ेसेनहींदीजाती

私が使用した正規表現は、その Unicode 範囲にないすべての文字を置き換えます。

于 2012-12-05T09:44:53.003 に答える