• 技术文章 >后端开发 >php教程

    ThinkPHP中截断指定长度的中文字符串后用删节号代替

    2016-06-13 12:55:37原创505

    ThinkPHP中截断指定长度的中文字符串后用省略号代替

    在TP模板中获取字符串并截断,以前一直觉得很神奇,现在才知道是自己不懂。

    开始不是很了解模板中可以直接调用方法,以为$this->assign('content',$res);指派后只能在模板中这样接受{$content},于是写各种原生PHP语句无效

    $title = {$content['title']}

    后来高手指点才知道在标签中不需要{}也就是

    //显示效果


    参考文章:点击打开链接

    $title = $content['title']
    于是终于拨开乌云见日开了
    //放在Common文件夹下common.php中的获取中文字符串的方法
    function abslength($str){   
           $len=strlen($str);   
           $i=0; $j=0;  
           while($i<$len)   
           {   
                 if(preg_match("/^[".chr(0xa1)."-".chr(0xf9)."]+$/",$str[$i]))   
                 {   
                   $i+=3;  //注意TP中的编码都是utf-8,所以+3;如果是GBK改为+2 
                  }   
                  else  
                  {   
                   $i+=1;   
                 }   
              $j++;
           }
           return $j;
       } 
    
    

    //模板中的部分代码

    
                        
  • echo substr('abc',0,2).'...'; $title = $content['title']; $length = abslength($title); if ($length>6) { {$content['title'] | String::msubstr=0,5,'utf-8',true} //参考的是底部的连接 } else { echo $content['title']; }
  • {$content['time']}

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:quot gt lt content title

    相关文章推荐

    • 聊聊ChatGPT是啥?PHP怎么使用ChatGPT?• 一文详解PHP用流方式实现下载文件(附代码示例)• PHP反序列化入门总结(小白必看)• PHP原生类的总结分享• 聊聊PHP escapeshellarg函数使用的中文问题
    1/1

    PHP中文网