技术文摘

畅言评论搬回帝国CMS

作者:雨祺   发表于:
浏览:132次    字数:866  原创
级别: 站长   总稿: 69 篇,  月稿: 0
前一段时间,说畅言投放广告太多太恶心,感觉非常不爽。网站本来啥入不多,再缴费去广告,就没有意思了。一个客户, 让仿了一个畅言评论,接着这个机会,把我在畅言的评论搬回帝国。
先登录畅言,然后导出评论数据,json格式的。如果数据量大,就分时间段导出。
下面的代码,把这个json数据,读到帝国cms评论表中:
  1. <?php 
  2. require('../class/connect.php'); 
  3. require('../class/db_sql.php'); 
  4. require('../data/dbcache/class.php'); 
  5. require('../member/class/user.php'); 
  6. require('../data/dbcache/MemberLevel.php'); 
  7. require LoadLang('pub/fun.php'); 
  8. $link=db_connect(); 
  9. $empire=new mysqlquery(); 
  10. $myr=file_get_contents('changyan.json'); 
  11. $myr=json_decode($myr,true); 
  12. set_time_limit(1000); 
  13. foreach($myr[comments] as $v){ 
  14.     $r=array(); 
  15.     $r[username]=$v[nickname]; 
  16.     $r[sayip]=$v[ip]; 
  17.     $r[saytime]=strtotime($v[ctime]); 
  18.     $r[id]=$v[topicSourceId]; 
  19.     if(!$r[id])continue
  20.     $r[classid]=$empire->gettotal("select classid as total from {$dbtbpre}ecms_news where id={$r[id]} limit 1"); 
  21.     $r[pubid]=ReturnInfoPubid($r[classid],$r[id]); 
  22.     $r[saytext]=addslashes($v[content]); 
  23.     $r[sayip]=$v[ip]; 
  24.     $empire->query("insert into {$dbtbpre}enewspl_1 set ".r2sql($r)); 
  25.      
  26.      
  27. echo 'ok!'
  28. db_close(); 
  29. $empire=null
  30. function r2sql($r){ 
  31.     $yqpl=''
  32.     foreach($r as $key=>$value){if(!is_numeric($key))$yqpl.=$key."='".$value."',";} 
  33.     return rtrim($yqpl,','); 
中间有过出错,是因为content没有addaslashes,所以导致导入帝国的评论表有重复的数据。可好,最近完成了帝国批量王的单表操作,删除重复的,正好拿来练手,代码如下:
  1. $empire->query("delete from {$dbtbpre}enewspl_1  where plid<>'$r[plid]' and   id='$r[id]' and saytime='$r[saytime]'"); 

【审核人:站长】

收藏   加好友   生成海报   分享
点赞(0)
打赏
Tags: 帝国 帝国CMS 畅言

发布者资料

热门文章

技术文摘

查看更多技术文摘
首页
栏目
搜索
会员
投稿