文章字數的計數(在有圖片的情況上)
來源:互聯網
上載者:User
文章字數的計數(在有圖片的情況下)
【目的】
文章預覽:當字數超過一定限制時,將文章的一部分顯示出來,剩下的用 ..顯示全文 來代替
【背景】
文章包含中文,英文,富文字編輯器產生的標籤,圖片(也是標籤引入的),並且文章內容是經過htmlspecialchars()處理的
【目前困難】
1.希望文章的“一部分”顯示出來,這個“一部分”希望是看起來體積差不多大的一個量,而不是說字元一邊多,因為utf-8中,如果是用一定字元數做限制的話,英文文章和中文文章會有明顯的體積不同的結果,我希望最後顯示出來,比如說,都是5行
2.正確的在utf-8的環境下切分,不把一個中文字元變成兩個亂碼
3.在含有圖片的文章也能正確切分,而不是把關於圖片的那個標籤中間某處切分
4.由於引入了富文字編輯器,所以很多內容都是帶有標籤的,這個在預覽的時候貌似很難處理好,我想,乾脆預覽的時候就不帶富文本那些格式好了,可是不知道是否有方法去掉這些標籤
5.由於要考慮使用者輸入的安全性問題,所以我是要用htmlspecialchars()處理使用者輸入的。可是先加富文本的那些標籤,後用htmlspecialchars()的話,那些標籤也都被處理了,結果就是顯示的時候,那些標籤都顯示出來了。於是我就先用htmlspecialchars()處理使用者輸入,後加富文本的標籤
【實現範例】
知乎網的在沒點開問題的時候,那個樣子的預覽就是我想要做到的——無格式,包含圖,差不多四五行
【目前想到的解決方案】
儲存的時候把內容存為有格式的本文和截好長度的無格式的預覽,這樣預覽就比較簡單了,但問題是如何才能得到去除格式的文字(前文:內容都是在先經過htmlspecialchars()後經過富文字編輯器處理),而且這樣做會有冗餘,不知道有沒有好的辦法
【其他】
富文字編輯器是由textarea產生的,基於html的,基本就是加標籤進去
【最後】
我水平太水,光描述這個問題就用了好久,各位大大辛苦了,感謝每一個看完了這個文章的人。。
我想大家應該理解了我的意思吧?希望沒有被我繞暈。。。
先行謝過各位了!!
另外,我的網站: 思想記http://42.121.107.221 昨天才剛剛上線測試,連備案還沒有做好,屬於我的個人愛好吧,就是寫寫自己的思想啊這樣的一個地方,在頁面底部的關於我們有這個網站的定位,恭請各位大大前來指點!
------解決方案--------------------
圖片尺寸不同時(比如某個圖片只是一個小ICON或LOGO),為避免變形,縮放是有一個標準的吧,不可能一律顯示為同樣的尺寸。如果把這個因素算進去,情況會更複雜一點。
不過,限制條件越多,實際上方法就越集中和清晰。取得圖片的尺寸參與顯示控制中即可。中文的問題也是可以解決的。
------解決方案--------------------
初看之下網站的BUG就不少,有時間用用再匯總一下吧。
------解決方案--------------------
如果你要精確的一個地區的字的話,光是數字數無論如何都是不行的。
我曾經做過這方面的,方法是建立一個div,把字(一個img標籤也看作一個字)一個一個地加進去,如果發現div高度高於某個預設值,就把字刪回去。效率比較低,但勝在效果好。
------解決方案--------------------
#5 的做法稱為“枚舉法”
你也可以用“動態規劃法”將每個元素(文字、圖片)視為一個個矩形,將問題抽象成:在大矩形中充填最多的小矩形。這是經典演算法,現成的代碼很多