php知识点学习整理

PHP 中英文混排截取字符串 (用php自带的函数,简单效果又好)

PHPer 2022-04-23 169 0 0
在网上找了几种代码,测试了,这个是最好的,还是官方的函数mb_strwidth()和mb_strimwidth()厉害,O(∩_∩)O

最后找到了笔记合适的

我自己用php内置函数写了字符串截取函数

//根据PHP内置函数写的截取字符串函数 20220423
if ( ! function_exists('mb_str_cut')){
    function mb_str_cut($str,$length=20,$tailTag='...') {
        if(mb_strwidth($str, 'utf8')>$length){
            $str = mb_strimwidth($str, 0, $length, $tailTag, 'utf8');
        }
        return $str;
    }
}

O(∩_∩)O,20220423,下面是我参考的内容


转~~~~~由于网上版本太多,不知道谁是原版,so~不标地址了

mb_strwidth($str, $encoding) 返回字符串的宽度

$str 要计算的字符串

$encoding 要使用的编码,如 utf8、gbk

mb_strimwidth($str, $start, $width, $tail, $encoding) 按宽度截取字符串

$str 要截取的字符串

$start 从哪个位置开始截取,默认是0

$width 要截取的宽度

$tail 追加到截取字符串后边的字符串,常用的是 ...

$encoding 要使用的编码

下边给大家实例演示:

<?php
/**
 * utf8 编码格式
 * 1个中文占用3个字节
 * 我们希望的是1个中文占用2个字节,
 * 因为从宽度上看2个英文字母占用的位置相当于1个中文
 */
// 测试字符串
$str = 'aaaa啊啊aaaa啊啊啊aaa';
echo strlen($str); // 只用strlen输出为25个字节
// 必须指定编码,不然会使用php的内码 mb_internal_encoding()可以查看内码
// 使用mb_strwidth输出字符串的宽度为20使用utf8编码
echo mb_strwidth($str, 'utf8'); 
// 只有宽度大于10才截取
if(mb_strwidth($str, 'utf8')>10){
    // 此处设定从0开始截取,取10个追加...,使用utf8编码
    // 注意追加的...也会被计算到长度之内
    $str = mb_strimwidth($str, 0, 10, '...', 'utf8');
}
// 最后输出 aaaa啊... 4个a算4个 1个啊算2个 3个点算3个 4+2+3=9
// 是不是很简单啊,有的人说了为什么是9个不是10个吗?
// 因为正好“啊”的后边还是“啊”,中文算2个,9+2=11 超出了设定,所以去掉1个就是9了

下边再给大家介绍一些其它函数吧: ...

立即注册

更新于:2022-04-23 02:23:36
    您需要登录后才可以评论。 立即注册
    相关内容

    PHP 和时间时区相关的函数

    PHP向js传数组

    php7函数的数组参数,传递规律。

    phpmyadmin问题整理

    phpmyadmin解决Failed to set session cookie. Maybe you are using HTTP...

    phpmyadmin 登录报错 mysqli_real_connect(): (HY000/2002):

    PhpMyAdmin 配置文件现在需要一个短语密码的解决方法

    PHP与APP

    PHP是否可以应用于App开发

    推荐内容

    分享几个好用的bt搜索bt资源下载网址网站

    影视电影剧集动漫综艺bt资源在线播放网址网站推荐分享

    全网最新bt磁力搜索引擎bt资源bt网站网址分享

    人气美女女优百度指数排行榜(波多野结衣,苍井空,三上悠亚,深田咏美,桥本有菜,北条...

    最强人造人深田咏美,业界的社交女王

    人生起起落落的三上悠亚,成名前的清纯风,怎么搭配出来的?

    业内第一大长腿,桥本有菜的腿究竟有多长

    波多野结衣,岛国业界著作最多的超级劳模

    日本AV界NO.1,苍井空是多少宅男的疯狂?

    美女女优视频混剪 This Girl-Laza Morgan

    怎样使用V2Ray代理和SSTap玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩...

    sstap游戏代理教程 从此玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩虹六...

    影视电影剧集动漫综艺bt资源在线播放网址网站推荐分享