찾다
php教程php手册php:根据中文裁减字符串函数方法

php:根据中文裁减字符串函数方法

Jun 13, 2016 am 10:20 AM
charsetdefinephputf-8중국인기능방법체계코딩기본

define(CHARSET, 'UTF-8'); // 系统默认编码  

  

/** 

 * 根据中文裁减字符串 

 * @param $string - 字符串 

 * @param $length - 长度 

 * @param $doc - 缩略后缀 

 * @return 返回带省略号被裁减好的字符串 

 */  

function cutstr( $string, $length, $dot = '...' ) {  

    if ( strlen( $string )

        return $string;  

    }  

    $pre = chr( 1 );  

    $end = chr( 1 );  

    $string = str_replace( array( '&', '"', '' ), array( $pre . '&' . $end, $pre . '"' . $end, $pre . '' . $end ), $string );  

    $strcut = '';  

    if ( strtolower( CHARSET ) == 'utf-8' ) {  

        $n = $tn = $noc = 0;  

        while ( $n

            $t = ord( $string[$n] );  

            if ( $t == 9 || $t == 10 || (32

                $tn = 1;  

                $n++;  

                $noc++;  

            } elseif ( 194

                $tn = 2;  

                $n += 2;  

                $noc += 2;  

            } elseif ( 224

                $tn = 3;  

                $n += 3;  

                $noc += 2;  

            } elseif ( 240

                $tn = 4;  

                $n += 4;  

                $noc += 2;  

            } elseif ( 248

                $tn = 5;  

                $n += 5;  

                $noc += 2;  

            } elseif ( $t == 252 || $t == 253 ) {  

                $tn = 6;  

                $n += 6;  

                $noc += 2;  

            } else {  

                $n++;  

            }  

            if ( $noc >= $length ) {  

                break;  

            }  

        }  

        if ( $noc > $length ) {  

            $n -= $tn;  

        }  

        $strcut = substr( $string, 0, $n );  

    } else {  

        for ( $i = 0; $i

            $strcut .= ord( $string[$i] ) > 127 ? $string[$i] . $string[++$i] : $string[$i];  

        }  

    }  

    $strcut = str_replace( array( $pre . '&' . $end, $pre . '"' . $end, $pre . '' . $end ), array( '&', '"', '' ), $strcut );  

    $pos = strrpos( $strcut, chr( 1 ) );  

    if ( $pos !== false ) {  

        $strcut = substr( $strcut, 0, $pos );  

    }  

    return $strcut . $dot;  

}  

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.