首页 > 其他 > 网站日记>正文

帝国cms之批量替换字段值

提示: 阅读权限:公开  

帝国cms6.6

批量替换字段值,可是总是没有成功。以下为在帝国论坛查到的相关帖子笔记:

1. 改用sql语句

update phome_ecms_news set newstext=REPLACE(newstext,'原字符','新字符')

2.替换无效的情况

(1)形式如:/desktx/d/file      批量修改成:/d/file

(2)被替换字符里含有特殊字符“/”,猜测用“////”来代表“/”进行转义。

(3)被替换字符串为:52卡-我们52自己的点卡商城已经建成.<A href="www.52ka.com" target=_blank target=_blank>www.52ka.com</A> 希望大家多多支持<BR

 

(4)<a href="http://www.shengshi.com/" target="_blank">  

(5)有人说,原字符和新字符都要加单引号。

(6)有这种情况,帝国后台编辑器里显示的内容,同数据库里显示的不同。这个问题解决,到数据库里看看究竟是怎么显示的就好办了。

(7)原:  d/file/ad/78XX  改后:d/file/ad/78-78  失败!

(8) 批量替换字段值时候不能替换TITLE中的字符"0",显示 传递参数错误~

(9)我要把文章模型中的内容包含&ldquo;【文章整理by<a class="channel_keylink" href="http://qq.com" target="_blank">QQ空间</a>qq.com】&ldquo;替换成空白字段,各种办法都是试过了。失败!

(10)当 原字符 是数字 0  的时候,就会出现传递参数有误,这是怎么回事?

(11)选择替换表(*):新闻系统,操作栏目:所有栏目,替换字段(*): smalltext,替换内容:<br />   替换成    &nbsp;,提交,之前newstext替换成功的。现在简介就是替换不了。出现换行。搜索结果十分难看。

 

(12)原字符<p>&nbsp;</p>  新字符不设置

 

个人总结了一下,替换失败大概有这样三个原因:

1.替换成功了,但是没有重新生成页面,误以为没有成功。刷新一下页面就好了。

2.字串在数据库里存储格式和后台编辑器里显示的不同。这个也好办。找到字符串在数据库的真面目,就可以成功替换了。

3.字符串里含有特殊字符,需要转义。但是帝国cms没有给出说明,而且管理员似乎也懒的说明。

实战笔记:

2014年10月18日23点10分了。抽支烟。看来问题就是处在引号身上。如何转义呢?

在mysq中,双引号用来转义 。试:"2"   失败!

提交 "2",发现传递到给函数DoRepNewstext($start,$oldword,$newword,$field,$classid,$tid,$tbname,$over,$dozz,$dotxt,$logininid,$loginin);中的值是--- "2"。

该函数位置为 /e/class/comdofun.php中。

分析代码后,确认是帝国cms的bug,大概在380行左右,这样修改:

 // $repoldword=addslashes($oldword);  这个是错的

  $repoldword=addslashes($postoldword);

   // $repnewword=addslashes($newword);  这个是错的

  $repnewword=addslashes($postnewword);

呵呵。这下所有的问题迎刃而解。19日凌晨了。晚安。

上一篇:显示二维码

下一篇:添加了百度的站内搜索代码

tags: 帝国cms 批量 帝国

返回首页

相关

热门

站内直通车

[!--temp.bottomnav--]
返回顶部