若果 Database 內有 100 個字,但我想顯示時只顯示 50 個字之後加三點,請問點寫呢?
用字串切割, 抓前 50 字 再補 . 就好啦 $aa = substr($ori_string, 0, 50 ) . "..." ;
前面老兄的方法就很快了...只是會有一點點危險...
萬一在前50個字內出現了一個英文字....
那切斷點就會給你好幾個亂碼囉
這方法是囉唆了一點....
但會保證你的安全...
$num=50;
$TEXT="一串好長的字xxxxxxx一串好長的字xxxxxxx一串好長的字xxxxxxx一串好長的字xxxxxxx一串好長的字xxxxxxx一串好長的字xxxxxxx";
if(strlen($TEXT) > $num) {
for($i=0;$i<$num;$i++) {
$ch=substr($TEXT,$i,1);
if(ord($ch)>127) $i++;
}
$TEXT= substr($TEXT,0,$i)."....";
}
echo $TEXT;
茶米己經將該先前分享的程式碼改寫成 Function ,原始碼如下:
function cutword($cutstring,$cutno){
if(strlen($cutstring) > $cutno) {
for($i=0;$i<$cutno;$i++) {
$ch=substr($cutstring,$i,1);
if(ord($ch)>127) $i++;
} $cutstring= substr($cutstring,0,$i)."...";
}
return $cutstring;
}
使用時的語法:
echo cutword(資料庫欄位,顯示字數);
分享給您,您可以試試喔!
相關網址:http://board.justok.net/viewtopic.php?t=2787&highlight=%B7j%B4M
原文出處:http://www.e-dreamer.idv.tw/index.php?article_id=22
YOGO補充一下:
若您的環境允許使用mb_substr的話,YOGO建議使用mb_substr比較不會有裁到中文字變成亂碼的困擾,以上函式YOGO改寫如下:
function cutword($cutstring,$cutno,$language="Big5"){
if(mb_strlen($cutstring,$language) > $cutno) {
$cutstring= mb_substr($cutstring,0,$cutno,$language)."...";
}
return $cutstring;
}
使用時的語法:
echo cutword(資料庫欄位,顯示字數,字串編碼);
基本上若你要截取的資料是BIG-5的中文編碼的話,第3個參數是可以不用填的,以上若有任何問題歡迎隨時提出討論^^
- Dec 12 Sat 2009 11:46
PHP中限制文字顯示
全站熱搜
留言列表
發表留言