【PHP】Laravel將HTML實體轉換回普通字符


問題

最近一個laravel模板的項目需要用到summernote富文本編輯器,內容保存到數據庫里是原始的html代碼。再讀取出來時使用htmlspecialchars_decode()對內容進行轉換,但輸出的結果還是html代碼。如“<p>123</p>”,輸出的結果應該是“123”,但是實際上轉換並沒有成功。在使用中表明,Laravel並不能像Thinkphp那樣使用htmlspecialchars_decode()對html代碼進行轉換。

解決辦法

查看Laravel官網的文檔,發現文檔的Blade模板引擎那一節有寫到如何顯示原生數據。文檔里提到,默認情況下,Blade 的 {{ }} 語句已經通過 PHP 的 htmlentities 函數處理以避免 XSS 攻擊。所以如果想顯示原生數據,應該在Blade模板中這樣寫

Hello, {!! $name !!}.

就可以成功輸出“123”了。

總結

主要問題還是看文檔時沒有認真看,太過於囫圇吞棗,結果浪費了自己的時間,希望自己能夠引以為戒吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM