求一个php能去除英文和一些符号的正则

来源:百度知道 编辑:UC知道 时间:2024/07/08 22:18:59
要求:只留中文、数字、和逗号,句号感叹号,其他如英文都不要了的正则
function stringReplace($str)
{
$str = preg_replace("/[^\xa0-\xff0-9\'\"\?]/",null,$str);
return $str ;
}
这个弄出来有乱码
holypku的有乱码
reficull能不能在加上只留逗号,句号感叹号,其他符号都不要

注意编码,如果是utf8的话,要让浏览器知道是utf8,如果是gbk就是gbk
而且你为什么要把简单问题复杂化,直接匹配英文字母不就好了?
以下是在utf8编码的,你要用ultraedit打开,或者支持utf8的编辑器打开测试

$str='有中文和英文word and phrases的例子还有345数字';

$str = preg_replace("|[a-z]|is","",$str);

echo '<meta http-equiv = "content-type" content = "text/html; charset=utf-8">';
echo "<pre>";
echo $str;

=====================
那两行改成这样

$str='有!中文,.和asciitable 33#$%&()*+ to 43 的符号英文word and phrases的例子还有345数字';

$str = preg_replace("|[\x21-\x2ba-z]|is","",$str);

<?php
$str = "地球ew.rp12312,qpo原子12312能qwer12312qqwed!q计算机";
$pattern = "/[^\xa1-\xff0-9,.!]/";
$str = preg_replace($pattern, "", $str);
echo $str;
?>