>백엔드 개발 >PHP 튜토리얼 >PHP는 중국어 문자열의 길이를 계산하고, 문자열을 숫자로 변환하고, PHP는 문자열을 분할하고, PHP 문자열 길이, ph

PHP는 중국어 문자열의 길이를 계산하고, 문자열을 숫자로 변환하고, PHP는 문자열을 분할하고, PHP 문자열 길이, ph

WBOY
WBOY원래의
2016-07-29 08:53:271496검색

중국 웹사이트는 일반적으로 gbk/gb2312 또는 utf-8의 두 가지 인코딩을 선택합니다.
gbk 인코딩의 각 중국어 문자는 2바이트를 차지합니다. 예를 들면 다음과 같습니다.

<code><span>$zhStr</span> = ‘您好,中国!’;
<span>echo</span> strlen(<span>$zhStr</span>); <span>// 输出:12</span></code>
<code>utf-8编码下每个中文字符所占字节为3,例:
</code>
<code><span>$zhStr</span> = ‘您好,中国!’;
<span>echo</span> strlen(<span>$zhStr</span>); <span>// 输出:18</span></code>

그렇다면 이 중국어 문자열 세트의 길이를 계산하는 방법은 무엇일까요? 어떤 사람들은 중국어 문자열의 길이를 gbk에서 2로 나누거나 utf-8 인코딩에서 3으로 나누는 것만으로는 충분하지 않다고 말할 수 있습니다. 하지만 문자열은 정직하지 않으며 99%의 경우 중국어와 영어가 혼합되어 표시된다는 점을 고려해야 합니다.
이것은 WordPress의 코드 조각입니다. 먼저 정규식을 사용하여 문자열을 개별 단위로 분해한 다음 문자열의 길이인 단위 수를 계산하는 것이 주요 아이디어입니다. UTF-8로 인코딩된 내용은 처리 가능) :

<code><span>$zhStr</span> = ‘您好,中国!’;
<span>$str</span> = ‘Hello,中国!’;
<span>// 计算中文字符串长度</span><span><span>function</span><span>utf8_strlen</span><span>(<span>$string</span> = null)</span> {</span><span>// 将字符串分解为单元</span>
preg_match_all(“/./us”, <span>$string</span>, <span>$match</span>);
<span>// 返回单元个数</span><span>return</span> count(<span>$match</span>[<span>0</span>]);
}
<span>echo</span> utf8_strlen(<span>$zhStr</span>); <span>// 输出:6</span><span>echo</span> utf8_strlen(<span>$str</span>); <span>// 输出:9</span></code>

아래에는 중국어 문자열의 길이를 정확하게 계산하는 함수를 캡슐화했습니다.

<code><span><span>function</span><span>count_strlen</span><span>(<span>$string</span> = null)</span>
{</span><span>$fileType</span> = mb_detect_encoding(<span>$string</span> , <span>array</span>(<span>'UTF-8'</span>,<span>'GBK'</span>,<span>'LATIN1'</span>,<span>'BIG5'</span>)) ; <span>//判断字符串中文编码的类型</span><span>$length</span> = iconv_strlen(<span>$string</span>,<span>$fileType</span>);<span>//根据字符编码计算字符串长度</span><span>return</span><span>$length</span>;
}

<span>$str</span> = <span>"中文45汶"</span>;
<span>$len</span> = count_strlen(<span>$str</span>);
<span>echo</span><span>$len</span>; <span>//输出5</span></code>
').addClass('pre- 번호 매기기').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

위 내용은 문자열과 PHP 내용을 포함하여 중국어 문자열의 길이를 계산하는 PHP를 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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