2024国产成人精品免费视频|日本免费一区二区三区毛片|久久97超碰色中文字幕|亚洲天堂a中文字幕

長沙論壇開發(fā):說說Discuz字符串截取的那些事

2014-12-31 11:38 欄目:技術(shù)開發(fā) 查看(15202)

在我們一個網(wǎng)站建設(shè)項目中通常需要進(jìn)行一些文字長度的限制,這就是我們常說的字符串截取。比如說一段文章的摘要,在A頁面可能是顯示的200個字,在B頁面可以只需要100個字。如果我們?yōu)榱诉@個差異而去做幾次程序的功能,那顯然有點(diǎn)吃虧或者不劃算。因此我們通常采取的方式都是把摘要信息存入一個變量中,當(dāng)然包含的字符數(shù)量通常是我們需要應(yīng)用的最大數(shù)量。

比如下面是兩種不同的列表方式,而其中的摘要部分就是Discuz的摘要,上面的是輸出所有的字?jǐn)?shù),而后面一部分是截取一部分輸出(因?yàn)槿绻竺婺莻€也輸出全部的話顯然不夠美觀。)

長沙論壇開發(fā):說說Discuz字符串截取的那些事 長沙論壇開發(fā):說說Discuz字符串截取的那些事

那么這個時候問題來了,究竟該如何來截取這個字符串才能更加符合我們的要求。如果同時了解前端和后端開發(fā)的朋友會有以下解決方案:通過CSS和PHP的任何一種來解決。

首先來說CSS,我們知道CSS完全也可以實(shí)現(xiàn)截取的字符串的目的,那那實(shí)際上不算作截取,只能算是“隱藏”多余的部分,而在上面兩張圖片的下面一張中,我們發(fā)現(xiàn)我們在處理的時候故意在三行文字的最后一行不充滿,如果是CSS就不能這樣,只能是充滿狀態(tài)。除此之外,有時候用CSS來“隱藏”會不太好操作。

再來聊聊PHP操作,我們知道不管是JS也好,還是PHP也好,甚至是其他的諸如java等語言。都有系統(tǒng)內(nèi)置的很多方法,而其中也必定包括了截取字符串的方法。

可能大家一開始就會想到的是substr,當(dāng)然也是我們經(jīng)常用到的。但在這里就有一個問題,因?yàn)榫幋a的問題會導(dǎo)致輸出亂碼,有朋友說我會處理這個問題,對!沒錯可以處理,但是作為官方認(rèn)證的開發(fā)者肯定不要忘記DZ的規(guī)范,不能在前臺模版文件中寫入過多的PHP代碼,特別執(zhí)行一些功能的。簡而言之,就是你處理了,可能就不符合Discuz二次開發(fā)規(guī)范了。

接著就會想到了mb_substr了,這個方法很多人也熟悉,而且我發(fā)現(xiàn)很多Wordpress模版中就使用到它,當(dāng)然似乎是WordPress進(jìn)行加工后的這個函數(shù)。mb_substr相對substr多了一個編碼識別,但是可能有的用戶的服務(wù)器都沒打開php_mbstring.dll(當(dāng)然我們的打開了)。

然后看到了Discuz在論壇首頁模版文件discuz.htm中有截取板塊最新發(fā)布文章的標(biāo)題,而使用到的函數(shù)就是cutstr,而這個其實(shí)就是Discuz內(nèi)置的一個方法。因此綜合起來說,在Discuz中直接用這個是靠譜的,當(dāng)然我也在網(wǎng)上看到一些朋友說,其實(shí)DZ的這個函數(shù)也有BUG。但對于基于Discuz來做二次開發(fā),我想這已經(jīng)不是什么問題了。

 

與我們的項目經(jīng)理聯(lián)系
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流

轉(zhuǎn)載請注明出處:長沙論壇開發(fā):說說Discuz字符串截取的那些事 - 微構(gòu)網(wǎng)絡(luò)
分享:
昭通市| 大英县| 乐清市| 永宁县| 连江县| 沈丘县| 昌邑市| 元谋县| 历史| 崇礼县| 乌什县| 蒙自县| 长沙市| 吴江市| 平度市| 宝山区| 改则县| 青浦区| 波密县| 昌图县| 湟中县| 屏东市| 岐山县| 海城市| 五指山市| 桂阳县| 竹山县| 宁陕县| 阿克陶县| 玉溪市| 太原市| 万源市| 丹东市| 林芝县| 交城县| 宁化县| 游戏| 眉山市| 邵阳县| 商南县| 漳浦县|