Chinaunix首页 | 论坛 | 博客
  • 博客访问: 113562
  • 博文数量: 16
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 380
  • 用 户 组: 普通用户
  • 注册时间: 2007-01-05 09:24
文章分类

全部博文(16)

文章存档

2011年(1)

2008年(15)

我的朋友

分类:

2008-04-18 14:21:11

function substrgb($in,$num){
        
$pos=0;
        
$out="";
        
while($c=substr($in,$pos,1)){
            
if($c=="\n") break;
            
if(ord($c)>128){
                
$out.=$c;
                
$pos++;
                
$c=substr($in,$pos,1);
                
$out.=$c;
            
}else{
                
$out.=$c;
            
}
            
$pos++;
            
if($pos>=$num) break;
        
}
        
if($out!=$in) $out = $out . "...";
        
return $out;
    
}
//调用很简单
//substrgb($row['title'],35)

还有一个更简单的方法,多谢Jon兄的指点
PHP 截字、斷字專用 function

在寫網頁的時後常會遇到 80 個字要截字, 然後超過 80 字加 “…”, 未滿 80 字不加.. 等等之類的問題.

之前用 substr 的寫法如下:

$string = strip_tags($string); // 先清掉 html tag, 以免 html tag 被破壞
    
$string = mb_substr($string, 0, 80, 'UTF-8');
    
$string .= (mb_strlen($string, 'UTF-8') > 80)?'...':'';

PHP 有支援很方便的 function 可以直接達到此功能.

$string = strip_tags($string);
    
$string = mb_strimwidth($string, 0, 80, '...', 'UTF-8');

在 UTF-8 的環境算字數用 strlen 或 mb_strlen 都不是很準, 所以可以用另一個做法, 算字的寬度, 也是個不錯的做法

echo mb_strwidth($string, 'UTF-8'); // 算字寬度

原文:

阅读(665) | 评论(0) | 转发(0) |
0

上一篇:Smarty的嵌套循环

下一篇:vim-enhanced

给主人留下些什么吧!~~