2013-01-10 43 views
0

我从MySQL数据库中提取一些数据并用它建立一个表。我有一个截断函数来截断很长的字符串。截断函数不起作用

这里是截断功能:

function myTruncate($string, $limit, $break=".", $pad="...") 
    { 
     // return with no change if string is shorter than $limit 
     if(strlen($string) <= $limit) return $string; 

     // is $break present between $limit and the end of the string? 
     if(false !== ($breakpoint = strpos($string, $break, $limit))) { 
     if($breakpoint < strlen($string) - 1) { 
      $string = substr($string, 0, $breakpoint) . $pad; 
     } 
     } 
     return $string; 
    } 

这里是建表位,其中函数被调用:

while($row = mysql_fetch_assoc($liveItemQuery)){ 
     //get donation type 
     $content .= "<tr><td>" . $i . "</td><td>" . $row['timestamp'] . "</td><td>" . myTruncate($row['description'], 25) . "</td><td>" . $row['po_number'] . "</td><td>" . number_format($row['amount'], 2) . "</td><td><a href=\"?view=expenses&itemid=" . $row['id'] . "\">Edit</a></td></tr>"; 
     $i++; 
    } 

话虽这么说,是不是被描述域上进行截断。值得注意的是,description在数据库中存储为数据类型text。另外,myTruncate($row['description'], 25)的变量转储报告string(1995),文本的全长。

那么是怎么回事?

非常感谢您的帮助。 “

+0

你的功能在截断通过设计先找到'$ break'(默认点)... –

+0

@ÁlvaroG.Vicario啊,我明白了。那么无论如何,它怎么能被修改为截断? – lampwins

回答

0

”不管截断什么“。更容易。

function myTruncate($s, $len){ 
    return substr($s, 0, $len) . (strlen($s)>$len? '...':''); 
} 
+0

谢谢,这有效! – lampwins