PHP 문자열 잘림(중국어 지원)

巴扎黑
풀어 주다: 2016-11-23 14:41:01
원래의
981명이 탐색했습니다.

<?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;   
    }   
?>
로그인 후 복사

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!