Home  >  Article  >  Backend Development  >  Usage and differences of substr(), mb_substr() and mb_strcut functions_PHP tutorial

Usage and differences of substr(), mb_substr() and mb_strcut functions_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 17:00:131006browse

In PHP, the three functions substr(), mb_substr() and mb_strcut are all character interception functions. However, when substr intercepts Chinese characters, there will be garbled characters. The latter two support Chinese interception. Let me introduce them below.

substr() function

substr(string,start,length)

String represents the object to be intercepted, start represents the position from which to intercept, 0 represents the beginning, a positive number represents the interception from the end of this number, and a negative number represents the interception position starting from the end, but still from left to Right truncation, length indicates the truncation length. A negative number indicates how many characters at the end are excluded or ignored. For example:

 代码如下 复制代码
$siteurl = 'www.bKjia.c0m';
print_r (substr($siteurl,4));exit;

//Return: bKjia.c0m means starting from the 4th character from the beginning and returning all subsequent characters.

The code is as follows Copy code
代码如下 复制代码

$siteurl = 'www.bKjia.c0m';
print_r (substr($siteurl,-6,2));exit;

$siteurl = 'www.bKjia.c0m';

print_r (substr($siteurl,-6,2));exit;


If you want to intercept double-byte Chinese characters, you need to use the PHP mb_substr function or mb_strcut function, but these two functions rely on the PHP extension php_mbstring.dll component, so you need to configure your server. That is, put the php_mbstring in the PHP installation directory Copy the .dll file to the Windows/system32 directory of the c drive of your Windows 2003.

代码如下 复制代码

echo mb_substr('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8');
?>

For example:

The code is as follows Copy code
 代码如下 复制代码

echo mb_strcut('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8');
?>

echo mb_substr('This way my string will not be garbled^_^', 0, 7, 'utf-8');

?>

Output: This way my words
 代码如下 复制代码

echo mb_substr('飞花院博客feihuayuan',0,9);
//返回: 飞花院

echo mb_substr('飞花院博客feihuayuan',0,9,'utf-8');
//则返回: 飞花院博客feih

mb_strcut('飞花院博客feihuayuan',0,9,'utf-8');
则返回:飞花院
?>

The code is as follows Copy code
echo mb_strcut('This way my string will not be garbled^_^', 0, 7, 'utf-8');<🎜> ?>
Output: like this As can be seen from the above example, mb_substr splits characters by words, while mb_strcut splits characters by bytes, but neither of them will produce half a character...
The code is as follows Copy code
echo mb_substr('feihuayuan blog feihuayuan',0,9);<🎜> //Return to: Feihuayuan<🎜> <🎜>echo mb_substr('feihuayuan blog feihuayuan',0,9,'utf-8');<🎜> //Return: Feihuayuan Blog feih<🎜> <🎜>mb_strcut('Feihuayuan blog feihuayuan',0,9,'utf-8');<🎜> Then return: Feihuayuan<🎜> ?>

For another example, there is a piece of text that is segmented using mb_substr and mb_strcut respectively:

PLAIN TEXT
CODE:

The code is as follows
 代码如下 复制代码

$str = '我是一串比较长的中文-';

echo "mb_substr:" . mb_substr($str, 0, 6, 'utf-8');

echo "
";

echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8');
?>

Copy code

$str = 'I am a relatively long string of Chinese-';

echo "mb_substr:" . mb_substr($str, 0, 6, 'utf-8'); echo "
";

echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8');

?>

The output results are as follows:

mb_strcut:I am Summary of this article As can be seen from the above example, substr only supports single byte, which is only suitable for English interception, while the mb_substr function intercepts double fonts, which can be used for Chinese, while mb_strcut is three bytes.
http://www.bkjia.com/PHPjc/631262.html
www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/631262.htmlTechArticleIn php, the three functions substr(), mb_substr() and mb_strcut are all character interception functions, but substr interception There will be garbled characters in Chinese, and the latter two support Chinese interception. I will introduce it below. ...
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