• php 限制标题长度,将一个中文转换成一个字符


    点击链接加入群【php/web 学习课堂】:https://jq.qq.com/?_wv=1027&k=5UJ9vEa

    欢迎大家加入,一起讨论学习

     

     

    玩这个功能的时候,我们要注意一点,我们是用中文的,有时候还有一些数据,是英文+中文,所以我们中国程序猿是很苦逼的。光学个代码,还都是英文,对于我们这种爱国主义,特难受。。。

     

    中文字符在PHP里,一个中文是占3个字符串的,给大家一个例子:

    $sta='abc';      那我们打印看一下长度 echo  substr($sta) ;    会看到,长度是3

    $sta='我';   换成中文,也能看到,一个中文打印 3 

     

    感谢参考:https://zhidao.baidu.com/question/233460627.html

    以下是我处理过后的代码,做了一个小小的演示,给大家看看效果

    <?php
    
    // header() 解决中文乱码
    header('Content-type:text/html;charset=utf-8');
    
    //将一个中文转换成一个字符
    function abslength($str)
    {
        if(empty($str)){
            return 0;
        }
        if(function_exists('mb_strlen')){
            return mb_strlen($str,'utf-8');
        }
        else {
            preg_match_all("/./u", $str, $ar);
            return count($ar[0]);
        }
    }
    //从中文里提取字符
    function utf8_substr($str,$start=0) {
        if(empty($str)){
            return false;
        }
        if (function_exists('mb_substr')){
            if(func_num_args() >= 3) {
                $end = func_get_arg(2);
                return mb_substr($str,$start,$end,'utf-8');
            }
            else {
                mb_internal_encoding("UTF-8");
                return mb_substr($str,$start);
            }
    
        }
        else {
            $null = "";
            preg_match_all("/./u", $str, $ar);
            if(func_num_args() >= 3) {
                $end = func_get_arg(2);
                return join($null, array_slice($ar[0],$start,$end));
            }
            else {
                return join($null, array_slice($ar[0],$start));
            }
        }
    }
    
    //先放一堆数据,模拟一下从数据库里提取出来的
    $sta = array(
        0=>array(
            'title' => '点击链接加入群【php/web 学习课堂】:https://jq.qq.com/?_wv=1027&k=5645xiw'
        ),
        1=>array(
            'title' => '每个人都能成为强者,关键看你能否以强者的标准来严格要求自己'
        ),
        2=>array(
            'title' => '如果你失忆了,希望你能想起曾经为了追求梦想的你。'
        )
    );
    
    //遍历数组
    foreach($sta as $k => $v){
        //判断长度
        if(abslength($v['title'])>25){
            //输出数据
            echo utf8_substr($v['title'],0,25).'...<br/><br/>';
        }else{
            echo $v['title'].'<br/><br/>';
        }
    }
  • 相关阅读:
    关于【缓存穿透、缓存击穿、缓存雪崩、热点数据失效】问题的解决方案
    pycharm快捷键
    php 整理的零碎知识点
    phpadmin 导出csv格式的数据处理
    python 单例模式的实现
    Java单体应用
    Java单体应用
    Java单体应用
    Java单体应用
    Java单体应用
  • 原文地址:https://www.cnblogs.com/longfeng995/p/8119033.html
Copyright © 2020-2023  润新知