如何从字符串中删除不需要的ascii字符?

时间:2015-11-01 13:06:40

标签: php string special-characters

我有一个字符串,如下所示

$string1="then & add â...“ to";

特殊的ascii字符â等导致错误。

所以我想知道有没有任何默认功能或方法来删除这些字符?

处理后的预期输出:

$string1="then & add … to";

2 个答案:

答案 0 :(得分:0)

您需要在php.ini中安装并启用mb_string(现在默认情况下是这样)。如果通过web运行,在centos上安装php-mbstring包并重启web服务器。

<?php

$string = "aâ";

print $string . "\n";

$length = mb_strlen( $string );
$index = 0;

$output = '';

while( $index < $length )
{
   $char = $string[$index];

   if( mb_check_encoding( $char, 'ASCII') )
   {
      $output .= $string[$index];
   }
   $index++;
}

print $output . "\n";
?>

结果:

aâ
a

要使用下划线替换字符,您可以修改代码以附加&#39; _&#39;如果检查编码没有返回1,则返回字符串。

http://php.net/manual/en/book.mbstring.php

答案 1 :(得分:0)

$str = 'aAÂ';
$str = preg_replace('/[[:^print:]]/', '', $str);

这是我想要的解决方案。谢谢大家帮助我的尝试。 remove non-ascii characters from string in php