Home >Backend Development >PHP Problem >PHP Chinese interception function without garbled characters

PHP Chinese interception function without garbled characters

(*-*)浩
(*-*)浩Original
2019-09-07 09:43:393860browse

PHP Chinese interception function without garbled characters

Substr is often used in PHP to intercept strings, but when we use it to intercept Chinese characters, garbled characters will occur, for example:

<?php
$mystring="今天天气真好";
$mysubstring=substr($mystring,0,2);
echo $mysubstring;
?>

The output result is �; (Recommended learning: PHP programming from entry to proficiency)

Cause analysis: The prototype of the substr function is: string substr (string $string, int $ start [, int $length ] ), where $length represents the returned byte length, and a Chinese character occupies two bytes. For a UTF-8 Chinese character, it will be treated as 3 bytes.

<?php
$length=strlen($mystring);echo $length;//输出结果为18
?>

That is to say, we can use $length to be 3, which will successfully return the word "Jin". In this case, if Chinese and English are mixed, we need to calculate $length carefully.

So is there a better solution? Php gives additional functions mb_strlen and mb_substr

<?php
$length=mb_strlen($mystring);
$mysub=mb_substr($mystring,0,4);
echo "the length is:$length,","the substr is:$mysub";
?>

The output result is: the length is: 6, the substr is: today’s weather

mb_strlen function The prototype is int mb_strlen(string string_input, string encode); encode defaults to UTF-8, which will count Chinese characters encoded for UTF-8 as a

Note: mb_strlen and mb_substr are not core functions of PHP. You need to open extension=php_mbstring.dll in php.ini before using them

The above is the detailed content of PHP Chinese interception function without garbled characters. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn