0

我有一个适用于多种语言的网站,我正在寻找一个 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 回答