专注于WEB技术的IT博客

kindeditor与SyntaxHighlighter通用整合方法2

时间:2013-01-05分类: wblog浏览:5667
分享到:

前台代码高亮显示的问题,在kindeditor与SyntaxHighlighter通用整合方法已经解决。但问题又来了:当你编辑代码时,发现在编辑器中显示的代码不完整!


这是为什么呢?难道是我们在后台插入的代码不完整?当然不是。我们在后台插入代码是没有问题的,你从数据表查看插入的代码就可以知道,代码是完整的。造成代码显示不完整,原因是代码插入数据库前,如"<",会被转义为"&lt;"保存在数据表中,当你直接从数据库取数代码时你看到的字符"<"是"&lt;"而不是"<",这就是代码第二次打开后显示不完整的原因!这可能是KindEditor的bug问题吧。


解决在线编辑器kindeditor编辑代码显示不完整的方法


从数据库取出代码内容后,先对其进行转义即把“&”,转换为“&amp;”实体(html中,“&”的字符实体是“&amp;”)。看代码:

public function getedit() { 
             if (empty($_GET['id'])) $this->error('编辑项不存在!'); 
                $Modulename=$this->getActionName(); 
                $vo = M($Modulename)->where(array('id'=>trim($_GET['id'])))->find(); 
                if ($vo) { 
                  if(in_array($Modulename,array('News','Blog','Download','Picture','Resources'))){ 
                   $modleid = $this->getmodleid($Modulename); 
                   $this->assign('catlist', D('Columns')->Catlist($Modulename,$modleid)); 
                  } 
                  $vo['content']=str_ireplace('&','&amp;',$vo['content']);//关键的一行 
                   $this->assign('vo', $vo); 
                    
                  } else { 
                    $this->error(); 
                  } 
             
            }


上面代码是WBlog的后台代码,在视图显示前对内容转义。
注:本次的操作是在完成kindeditor与SyntaxHighlighter整合的基础上进行。


      


猜你喜欢
KindEditor在thinkphp上的使用方法
kindeditor与SyntaxHighlighter通用整合方法
除非注明,本文首发网志博客,欢迎转载!转载请注明本文地址:http://w3note.com/web/65.html,谢谢。
  • 评论
  • 赞助本站