Home >Backend Development >PHP Problem >PHP implements Chinese string interception without garbled characters

PHP implements Chinese string interception without garbled characters

(*-*)浩
(*-*)浩Original
2019-09-27 09:57:473516browse

PHP implements Chinese string interception 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: (Recommended learning: PHP programming from entry to proficiency)

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

The output result is �;

Cause analysis:substr function The prototype is: string substr ( string $string , int $start [, int $length ] ), where $length represents the returned byte length, and one Chinese character occupies two bytes. For a UTF-8 Chinese character, it will be It is 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 provides 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

## The #mb_strlen function 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 one


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 implements Chinese string interception 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