Kindeditor結合highlight可以插入代碼并支持語法高亮顯示,但是后臺編輯的時候會出現代碼視圖可見,正常視圖部分代碼不可見,如果在可視視圖修改并提交后會導致內容丟失。
先說一下為什么會出現這個問題:
1、為安全起見,程序可能會對html代碼進行轉碼(實體化),如用htmlspecialchars把<body>會轉成&g t;body < ;的樣子。
2、在調用的時候我們就需要用htmlspecialchars_decode轉換回來。這里其實是針對前臺的,如果在后臺也進行decode就會出現以上問題!如下圖中的圖片,應該按代碼顯示卻被執行了!
既然明白了為什么會導致這種情況,解決辦法就很簡單了
方法一(推薦):
前臺進行htmlspecialchars_decode解碼,后臺編輯器中刪除此操作即可。也就是不需要解碼,支持輸出,Kindeditor會幫我們處理好的。
方法二(有點麻煩了,完全沒必要的樣子):
$cont=htmlspecialchars_decode($arr['cont']);//這是編輯器內容,先解碼 $reg = '~<pre.*?<\/pre>~is'; preg_match_all($reg,$cont,$rst);//匹配出所有的pre標簽 foreach ($rst[0] as $key => $value) { $cont=str_replace($value,'{'.md5($value).'}',$cont);//先把pre標簽進行加密 } foreach ($rst[0] as $key => $value) { $v=htmlspecialchars($value);//對pre標簽內部標簽進行轉碼 $cont=str_replace('{'.md5($value).'}',$v,$cont);//替換已加密的pre標簽內容為已轉碼的內容 }
© 致遠 2020-02-02,原創內容,轉載請注明出錯:Kindeditor中插入代碼后臺無法正常顯示的解決辦法