/** * @param $string * @param $from 从0开始…… * @param null $length * @return string * c_substr(给我一点, $from=0, 9)>>给我一 * c_substr(给我一点, $from=1, 9)>>我一 * c_substr(给我一点, $from=2, 9)>>我一 * c_substr(给我一点, $from=3, 9)>>我一点 */privatefunctionc_substr($string, $from=0, $length = null){//必填字段校验if(!isset($string)||!isset($from)||$from0){ return''; } //获得字符串长度$strlen = strlen($string); //如果没有设置长度则把长度设置为字符串if($length == null){ $length = $strlen; } //判断字符串长度是否小于等于$length,是则直接返回字符串if($from == 0&&$length >= $strlen){ return$string; } $sublen = $length + $from; $rtnstr = ; //开始截取字符串//为了能够截取完整,需要从头开始遍历for($i=0;$i$sublen&&$i$strlen;$i++){ //判断是否为中文 如果是则在不超长的情况下往后再截2个字节if(ord($string[$i])>0xa0){ if($i+2$sublen&&$i+2$strlen){ $rtnstr .= $string[$i].$string[$i+1].$string[$i+2]; /** * 如 “给我一点” * 从位置0截取9个字节,则只获取“给我一” * 从位置1截取9个字节,则只获取“我一” * 从位置2截取9个字节,则只获取“我一” * 从位置3截取9个字节,则只获取“我一点” * 下面的if是为了跳过开头不完整的字符 */if($i$from){ $rtnstr = ; } $i += 2; } else{ return$rtnstr; } } //英文else{ $rtnstr .= $string[$i]; } } return$rtnstr; }
版权声明:转载的时候提到我就行……
以上就介绍了php截取中英文,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。
