可能沒什麼含量,求少拍磚。
首先是PHP版的。
其實只用mb_strimwidth一個函數就可以了,函數的說明如下:
mb_strimwidth — 取得指定寬度截斷的字串
string mb_strimwidth ( string $str , int $start , int $width [, string $trimmarker = "" [, string $encoding = mb_internal_encoding() ]] )
參數說明:
$str 為要截斷的字串(即原始字串,輸出的字串)
$start 從第幾個字元開始截取,預設是0
$width 所需修剪的寬度
$trimmarker 截取後,在字串末尾新增的內容(常見的為...表示省略),預設我i空
$encoding 這個參數很重要,如果字串是中文,一定要加。否則。 。 。 。就可以看到「�」這東西了,以前沒仔細看過這個函數,在wordpress主題裡因為要顯示文章的一小段內容,然後末尾就有亂碼了,很久都不知道為什麼。另外這個參數應該是跟網頁的編碼格式一致的,個人測驗的時候網頁編碼utf-8,參數寫為gbk的時候漢字就shit了。 。 (求大牛解釋)
php版本的就這樣了,有時候以為是php語言的問題,其實只是我們沒仔細研究它。
js版本的:
substring()和substr()方法,兩個方法*幾乎*沒區別,
substring()方法的第一個參數必填,為要提取的子字串的第一個字元在字串中的位置,第二個參數可選,是要提取的子字串的最後一個字元在stringObject 中的位置多1位,預設無,到字串結尾。
substr()第一個參數必需。要抽取的子字串的起始下標。必須是數值。如果是負數,那麼此參數宣告從字串的尾部開始算起的位置。也就是說,-1 指字串中最後一個字符,-2 指倒數第二個字符,以此類推。第二個參數為可選。子字串中的字元數。必須是數值。如果省略了該參數,那麼傳回從 stringObject 的起始位置到結尾的字符串。
例:
這個範例輸出:lo world!
從原字串第三位開始,到結尾
這個範例輸出:lo w
從原字串第四位開始,到第七位
輸出:lo world!
第三位開始到結尾
輸出:lo worl
從第四名開始,截取7位。
JS這兩個方法可以看
http://www.w3school.com.cn/js/jsref_substring.asp
http://www.w3school.com.cn/jsref/jsref_substr.asp
第三個就是CSS的了
CSS截取主要使用text-overflow這個屬性。
text-overflow: [ clip | ellipsis |
text-overflow預設值為clip ,即當內容超出容器時,會裁切掉超出的文本,值為ellipsis時,會用省略號替代超出的文本;也可以用特定的字串來替代超出的文字(目前僅firefox 支援)。
省略號的例子:
[copy]參考資料:
http://quirksmode.org/css/user-interface/textoverflow.html
https://developer.mozilla.org/en-US/docs/Web/CSS/text-overflow
其實css的說明看一下mozilla開發者網站的圖例就明白了。這裡就不多說了。