× 說心事 政治時事 生活 運動 汽車 機車 自行車 相機 科技 理財 旅遊美食 娛樂 健康 美麗時尚 人際關係 文學故事 關於《思書》
吃喝玩樂 關於《思書》


Rails 如何簡單的轉換 HTML 到 text


紅寶鐵軌客
來關注...
關注/停止關注:紅寶鐵軌客
關注有什麼好處?:當作者有新文章發佈時,「思書」就會自動通知您,讓您更容易與作者互動。
×
現在就加入《思書》,你就可以關注本作者了!
《思書》是一個每個人的寫作與論壇平台,特有的隱私管理,讓你寫作不再受限,討論更深入真實,而且免費。 趕快來試試!
還未加入《思書》? 現在就登錄! 已經加入《思書》── 登入
Rails 使用中,折磨中,享受中......
2017/05/26
37   0  


轉換 HTML 到 一般網頁上可以顯示的純文字... 簡單?

其實,很不容易的,一般用 Rails 內建的 Strip_tags 以為就好,但是會碰到跳脫文字的問題:& > < ...

很多網路上的建議是用 gsub,不錯用,但是,又是要很大的一段 code,我剛發現一個很好用的方法:

以 "<p>test &amp; test</p>" 這個最簡單的 HTML 來試試:

s="<p>test &amp; test</p>"
truncate(strip_tags(s), length: s.length)
> "test &amp;amp; test"
truncate(strip_tags(s), escape: false, length: s.length)
> "test &amp; test"

看到沒,夠簡單吧,其實只要用內建的truncate,完美的轉換 HTML 到 text!

那如果要在 controller 或是 model 中,轉換 HTML 到 text 呢?也很簡單,只是,這時你就要呼叫 ActionView 中的功能,以下就是轉換的呼叫方式:

ActionView::Base.full_sanitizer.sanitize(string_wtih_html_tag)

就這樣,你就可以在 controller 或是 model 中呼叫 rails view 功能了,同時,你也可以在 Rails console 中驗證了。


喜歡作者的文章嗎?馬上按「關注」,當作者寫新文章時,思書™就會 email 通知您。 思書是公開的寫作平台,創新的多筆名寫作方式,能用不同的筆名探索不同的寫作內容,無限寫作創意,更保護作者與文章中人物的隱私,思書不只線上寫作方便,還可以整理文章成一本線上書,而且這些都是免費的,如果您喜歡寫作分享,一定要來試試! 《 加入思書》
思書™是自由寫作平台,本文為作者的個人立場與意見。
關於作者

很久以前就是個「寫程式的」,其實,什麼程式都不熟⋯⋯
就,這會一點點,那會一點點⋯⋯



標籤: strip_tags x 1 truncate escape x 1 html to text x 1 rails x 34

分享:



參與討論!
×
現在就加入《思書》,馬上參與討論!
《思書》是一個每個人的寫作與論壇平台,特有的隱私管理,用筆名來區隔你討論內容,讓你的討論更深入,而且免費。 趕快來試試!
還未加入《思書》? 現在就登錄! 已經加入《思書》── 登入