添加了好几万条信息了,结果需要修改字段值,这样的要求有没有?
或者是因为采集的时候过滤不充分
或者是数据表新添加了字段
或者是想搞l图片延时加载
或者是或者...
怎么办?
官方给了简单解决办法,后台有批量替换字段值
但是 不能满足我们的要求
所以写了个批量处理的插件 - 帝国批量王
只需要把处理的代码写到,自定义页面模板中,就可以批量处理了。
【使用法】后台,添加sql语句,并保存,要求名称[plw]开头。
模板内容参考示范代码。主表副表字段都集成在$r数组中了。要求把最后修改的字段名写到$listtemp变量中,多个用逗号分开。
代码1:同时修改多个字段。要点--最后把需要修改的字段名写到$listtemp变量中,多个用逗号分开。
$r['newstext'].='777';
$r['smalltext']='777'.$r['smalltext'];
$r['title']='777'.$r['title'];
$listtemp="newstext,title,smalltext";
代码2:修改发布时间字段
【需求背景】 http://bbs.phome.net/ShowThread/?threadid=351326&forumid=13
【示范代码】
$r['newstime']=to_time('1988-12-30');
$listtemp="newstime";
代码3:批量修改smalltext
【需求背景】http://bbs.phome.net/ShowThread/?threadid=343386&forumid=13
【示范代码】
$r['newstext']=stripslashes($r['newstext']);
$smalltext=SubSmalltextVal($r['newstext'],100);
$r['newstext']=addslashes($smalltext);
$listtemp="smalltext";
【示范代码】
global $public_r;
$listtemp='smalltext';
$r['newstext']=stripslashes($r['newstext']);
$smalltext=SubSmalltextVal($r['newstext'],$public_r['smalltextlen']);
$r['smalltext']=addslashes($smalltext);
$listtemp="smalltext";
【代码4】批量取消审核
$jhc=$empire->query("update {$dbtbpre}ecms_{$tbname}_index set checked=0 where id='$r[id]'");
MoveCheckInfoData($tbname,1,$r['stb'],"id='{$r[id]}'");
AddClassInfos($r['classid'],'','-1');
DelNewsFile($r[filename],$r[newspath],$r[classid],$r[$pf],$r[groupid]);
$listtemp='';
【代码5】批量审核
//未审核表转换 MoveCheckInfoData($class_r[$r[classid]][tbname],0,$r['stb'],"id='$r[id]'"); //更新栏目信息数 AddClassInfos($r['classid'],'','+1'); //刷新信息 GetHtml($r['classid'],$r['id'],$r,1); $listtemp='';
【代码6】批量修改友情链接的说明
$r['lsay']='你好我就是测试一下好用吗';
$listtemp="lsay";
【代码7】一个字段的内容,分隔到两个字段
$listtemp='newstext,zuijiadaan'; $newstext=stripslashes($r['newstext']); $jhcr=explode('<h2>优质解答</h2>',$newstext); if(count($jhcr)==1)continue; $r['newstext']=addslashes($jhcr[0]); $r['zuijiadaan']=addslashes($jhcr[1]);
* 注:2018年9月18日 批量王增加了处理任意数据表的功能
【代码8】//代码:[plw]批量提取第一张图片为标题图片
//代码:[plw]批量提取第一张图片为标题图片 if(!$r[titlepic]){ $newstext=stripslashes($r['newstext']); $pattern = '/<img(?=\s).*?(?<=\s)src="(.+?)"/i'; preg_match($pattern, $newstext, $matches); if($matches){ $r[titlepic]= $matches[1];//返回第一张图片地址 if(!strstr($r[titlepic],'://')){$r[titlepic]=$_SERVER[HTTP_ORIGIN].'/'.ltrim($r[titlepic],'/'); } } } $listtemp='titlepic'; //内容图片批量保存在本地,如何操作? $listtemp='newstext'; $mark=1;// 水印 $text=stripslashes($r['newstext']) $text=CopyImg($text,1,0,$r[classid],'',$r[username],$r[id],0,$mark,$r[fstb]); $r['newstext']=addslashes($text); //复制关键词到tag字段 $tags = explode(",", $r[keyboard]); $mid = (int)$class_r[$r[classid]][modid]; //获取模型id foreach ($tags as $tag) { if (strstr(',' . $r['infotags'] . ',', ',' . $tag . ',')) continue; //已经有了 $r['infotags'] = ltrim($r['infotags'].',' . $tag,','); $tagid = $empire->gettotal("select tagid as total from {$dbtbpre}enewstags where tagname='$tag' limit 1"); if ($tagid) { $empire->query("update {$dbtbpre}enewstags set num=num+1 where tagid='$tagid'"); } else { $empire->query("insert into {$dbtbpre}enewstags(tagname,num,isgood,cid) values('$tag',1,0,0);"); $tagid = $empire->lastid(); } $empire->query("insert into {$dbtbpre}enewstagsdata(tagid,classid,id,newstime,mid) values('$tagid','$r[classid]','$r[id]','$r[newstime]','$mid');"); } $listtemp = 'infotags';