Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php字符串截长(支持中文)

php字符串截长(支持中文)

巴扎黑
巴扎黑asal
2016-11-23 14:41:01983semak imbas

<?php    
/**  
 * 字符串截长(支持中文)  
 * @author:zms  
 * @version:2011-7-27  
 */  
  
    /**  
     * 字符串截取  
     * @param object $str : 字符串(支持中文)  
     * @param object $start :截取开始位置  
     * @param object $length:截取结束位置  
     * @param object $encode [optional]:字符串编码  
     * @param object $input_encode [optional]:输入的文字的编码  
     * @return  
     */  
    function substring($str, $start, $length, $encode = &#39;utf-8&#39;, $input_encode = &#39;utf-8&#39;) {   
        //编码转换   
        $str = iconv($input_encode, $encode, $str);   
        //正则匹配   
        preg_match_all(getRege($encode), $str, $match);   
        //从数组取得数据,组成字符串   
        $slice = join("", array_slice($match[0], $start, $length));   
        return $slice;   
    }   
    /**  
     * 中文编码  
     * @param object $type  
     * @return  
     */  
    function getRege($type) {   
        $rege = "";   
        switch (strtolower($type)) {   
            case &#39;utf-8&#39;:   
                $rege = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";   
                break;   
            case &#39;gb2312&#39;:   
                $rege = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";   
                break;   
            case &#39;gbk&#39;:   
                $rege = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";   
                break;   
            case "big5":   
                $rege = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";   
                break;   
            default:   
                echo "charset error";   
                exit;   
        }   
        return $rege;   
    }   
?>

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:彷hibernate数据库操作Artikel seterusnya:php写后端运行程序总结