2017-08-19 52 views
0

我有一个字符串:Chào Bạn如何删除PHP中没有引号的特殊字符?

在PHP中,我想将它转换为小写,并删除所有特殊字符,空格。

输入:Chào Bạn

输出:chaoban

在PHP代码:

$string = 'Chào Bạn'; 
$newString = preg_replace('/\s+/', '', $string); 
echo strtolower($newString); 

$newString = chàobạn结果。

我无法删除特殊字符。

+0

[正则表达式消毒(PHP)(https://stackoverflow.com/questions/3022185/regular-expression-sanitize-php) – vv01f

+0

音译的可能的复制总是很棘手,但请查看['iconv()'](http://php.net/manual/en/function.iconv.php)。 – BenM

+1

为什么使用preg_replace删除空格?这样浪费计算能力。 – Andreas

回答

0

您可以使用下面的功能为您的解决方案。

function clean($string) { 
    $string = strtolower($string); // Convert string into lower. 
    $string = str_replace(' ', '', $string); // Replaces all spaces . 

    return preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special chars. 
} 
+0

您不需要'str_replace','preg_replace'处理它并且 – rndus2r

+0

您的回答是:'chobn' – vanloc

+0

Hi @Jalpa,添加行:'$ string = iconv('utf-8','ascii// TRANSLIT',$ string);''clean'()'函数中的'return'之前,并且remove行有'str_replace',因为像@ rndus2r所说的那样。它工作。编辑答案时,我会接受你的答案。 – vanloc

0

试试这个:

​​
+0

这不是一个答案,因为它只会删除所有非字母数字字符。 OP希望这些特殊字符回到正常字符。 – rndus2r