温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》
  • 首页 > 
  • 教程 > 
  • 开发技术 > 
  • mb_strps,编码转化 substr(),mb_substr()及mb_strcut函数用法与区别

mb_strps,编码转化 substr(),mb_substr()及mb_strcut函数用法与区别

发布时间:2020-07-04 10:55:07 来源:网络 阅读:641 作者:zhaozhangxiao 栏目:开发技术

$b = mb_strpos($name,'曾效力新');

 $encoding = strtoupper(mb_detect_encoding($name, array("UTF-8", "GBK", "GB2312", "BIG5", "ASCII")));

if (strcmp('UTF-8', $encoding) !== 0){

    $content = mb_convert_encoding($name, 'UTF-8', $encoding);

}

substr()函数

substr(string,start,length)

string表示要截取的对象,start表示从哪个位置开始截取,0表示从头开始,正数表示从这个数的位置后面截取,负数表示从结尾算开始截取的位置,但依然是从左到右截,length表示截取长度.负数表示排除或忽略结尾多少个字符.比如:

 代码如下复制代码
<?php 
$siteurl = 'www.111cn.net';
print_r (substr($siteurl,4));exit;

//则返回:  111cn.net表示从头第4个字符开始,返回后面的所有字符.

 代码如下复制代码

<?php 
$siteurl = 'www.111cn.net';
print_r (substr($siteurl,-6,2));exit;

如果要截取双字节的汉字.则要用PHP mb_substr函数或mb_strcut函数,但这两个函数依赖php扩展php_mbstring.dll组件,所以要配置你的服务器.即把php安装目录中的php_mbstring.dll文件复制到你的windows 2003 的c盘的Windows/system32目录中.


举个例子:

 代码如下复制代码

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

输出:这样一来我的字

 代码如下复制代码

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

输出:这样一

从上面的例子可以看出,mb_substr是按字来切分字符,而mb_strcut是按字节来切分字符,但是都不会产生半个字符的现象……

 代码如下复制代码

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

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

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

再举个例子,有一段文字, 分别用mb_substr和mb_strcut来做切分:

PLAIN TEXT
CODE:

 代码如下复制代码

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

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

echo "<br>";

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

输出结果如下:

mb_substr:我是一串比较
mb_strcut:我是

本文章总结

从上面实例可以看得出来,substr只支持单字节的,这样只适合英文截取,而mb_substr函数是双字体截取了,正好可用于中文了,而mb_strcut是三字节了。


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI