• 首页
  • 需求
  • 报摘
  • 视频
  • 娱乐
  • 游戏
  • 酷图
  • 军事
  • 历史
  • 电脑
  • 手机
  • 软件
  • 汽车
  • 社会
  • 健康
  • 科技
  • 旅游
  • 体育
  • 财经
  • 公益
  • 慈善
  • 专题
  • 满足您需
  • Google
    站内
    当前位置 :| 主页>电脑>数据库>

    把数据保存到数据库主表 `dede_archives` 时出错的解决方案

    来源: 作者: 时间:2008-03-10 点击:

    使用dedecms网站程序时.发表文章时出现"把数据保存到数据库主表 `dede_archives` 时出错,

    出错原因是dede自动截取文章简介产生乱码引起保存到数据库出错。

    解决方法是替换掉dede的一个函数(SpHtml2Text):

    此函数在下面文件 第四行:
    include\inc\inc_fun_funString.php

    原型是:
    function SpHtml2Text($str){
      $str = preg_replace("/<sty(.*)\\/style>|<scr(.*)\\/script>|<!--(.*)-->/isU","",$str);
      $alltext = "";
      $start = 1;
      for($i=0;$i<strlen($str);$i++){
        if($start==0 && $str[$i]==">") $start = 1;
        else if($start==1){
          if($str[$i]=="<"){ $start = 0; $alltext .= " "; }
          else if(ord($str[$i])>31) $alltext .= $str[$i];
        }
      }
      $alltext = str_replace(" "," ",$alltext);
      $alltext = preg_replace("/&([^;&]*)(;|&)/","",$alltext);
      $alltext = preg_replace("/[ ]+/s"," ",$alltext);
      return $alltext;
    }

    其作用是去掉所有htm标记。

    俺替换成下面的函数:
    function SpHtml2Text($str){
      $alltext = str_replace(" ","",$str);
      $alltext=strip_tags(trim($alltext));//haha123_0 去掉所有htm标记
      return $alltext;
    }
     

    最新评论共有 0 位网友发表了评论
    发表评论
    评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
    用户名: 密码:
    匿名?
    注册