[\x01-\x77]
应为
[\x01-\x7f] $s = substr($str,$start,$end); //取字串
$end = strlen($s); //计算结果串长度
if($s[$end-1] > $ch) { //如果最后一个字符是扩展ascii字符
$s = preg_replace($p,$r,$s); //删去结果串中的汉字和基本ascii字符(显然在chr(0x01)到chr(0x7f)之间)
$end += strlen($s); //调整截取的长度
}这个函数是我在初学php时写的,虽然执行效率比较高。但仍然有很大的优化空间