火车采集器软件交流官方论坛

 找回密码
 加入会员
搜索
火车采集器V9版免费下载火车浏览器 - 可视采集,万能群发,全自动脚本工具
查看: 9308|回复: 11

互动百科Hdwiki4.04在线发布程序

[复制链接]
发表于 2009-6-20 20:01:56 | 显示全部楼层 |阅读模式
找了很长时间,居然没有人放出来,于是自己写了一个:

一、模块设置

1、文章发表地址后缀:/dwiki.php?
2、发表post数据 如下:

  1. title=[标签:标题]&content=[标签:内容]&time=[系统时间戳]&categoryid=[分类ID]&nameid=[随机用户名]&tag=[标签:标题]&update=1&log=1
复制代码


3、发表错误标识码:添加失败
4、成功标识码: 添加成功

特别说明:支持变换用户名。 但格式必须为 : admin||1 的格式







必须指定栏目

二、发布程序

以下代码,存为dwiki.php 上传到百科的根目录就可以啦。
  1. <?
  2. define('HDWIKI_ROOT', dirname(__FILE__));

  3. require HDWIKI_ROOT.'/config.php';
  4. require HDWIKI_ROOT.'/lib/string.class.php';

  5. //$UpdateDuplicate=1; // 0--不替换 1--尾部添加 2--直接替换
  6. //$EnableLog=0; //0--No Log 1 Log

  7. $title=$_REQUEST["title"];
  8. $content=$_REQUEST["content"];
  9. //if ((trim($title)=="") or (trim($content)=="")) { echo "添加失败";exit();}
  10. $tag=$_REQUEST["tag"];
  11. $tag=str_replace(',',';',$tag);
  12. if (trim($tag)=="") {$tag=$title;}
  13. $categoryid=$_REQUEST["categoryid"];
  14. $nameid=$_REQUEST["nameid"];
  15. $nameid=explode("||",$nameid);
  16. $username=$nameid[0];
  17. $userid=$nameid[1];
  18. $time=$_REQUEST["time"];
  19. $letter=string::getfirstletter($title);

  20. $UpdateDuplicate=$_REQUEST["update"];
  21. $EnableLog=$_REQUEST["log"];

  22. if ($UpdateDuplicate=="") { $UpdateDuplicate=0; }
  23. if ($EnableLog=="") { $EnableLog=0; }
  24. $EnableLog=0;
  25. if (trim($classid)=="") { $classid=1;}


  26. $handle1 = fopen("WikiInsertLog.txt","a+");
  27. $handle2 = fopen("WikiUpdateLog.txt","a+");


  28. $dstconn=mysql_connect(DB_HOST,DB_USER,DB_PW)
  29. or die("不能连接数据库服务器: ".mysql_error());

  30. mysql_select_db(DB_NAME,$dstconn) or die ("不能选择数据库: ".mysql_error());
  31. mysql_query("SET NAMES 'GBK'");

  32. $summary=MakeSummary($content,250);




  33. $De=DocExists($title);

  34. $did=$De[0];

  35. if ($did<>-1)
  36. {

  37. $islocked=$De[1];

  38. if (islocked==1) { exit();} //主题被锁定

  39. switch ($UpdateDuplicate)
  40. {
  41. case 0: //跳过
  42. exit();
  43. case 1: //追加
  44. $sql="UPDATE ".DB_TABLEPRE."doc SET tag=concat(tag,';','".$tag."'),content=concat

  45. (content,'<p></p>','".$content."'),lastedit='".$time."',lasteditor='".$username."',lasteditorid='".$userid."',edits=edits+1,editions=editions+1,visible='1' WHERE did=".$did;
  46. break;
  47. case 2: //更新
  48. $sql="UPDATE ".DB_TABLEPRE."doc SET tag='".$tag."',summary='".$summary."'

  49. ,content='".$content."',lastedit='".$time."',lasteditor='".$username."',lasteditorid='".$userid."',edits=edits+1,editions=editions+1,visible='1' WHERE did=".$did;
  50. break;
  51. }

  52. mysql_query($sql);

  53. if ($EnableLog==1)
  54. {
  55. fwrite($handle2,"Update SQL:".$sql."\r\n");
  56. fwrite($handle2,"===========================================================\r\n\r\n");
  57. }

  58. echo "添加成功";

  59. }
  60. else
  61. {

  62. $sql="INSERT INTO ".DB_TABLEPRE."doc (cid,letter,title,tag ,summary ,content,author,authorid,time,lastedit,lasteditor,lasteditorid,visible) VALUES

  63. ('".$categoryid."','".$letter."','".$title."','".$tag."','".$summary."','".$content."','".$username."','".$userid."',".$time.",".$time.",'".$username."','".$userid."','1')";
  64. mysql_query($sql);

  65. if ($EnableLog==1)
  66. {
  67. fwrite($handle1,"Insert SQL1:".$sql."\r\n");
  68. }

  69. $did=mysql_insert_id();


  70. $sql="INSERT INTO ".DB_TABLEPRE."edition (cid,did,author,authorid,time,ip,title,tag,summary,content,words,images ) VALUES

  71. ('".$categoryid."',$did,'".$username."','".$userid."','".$time."','127.0.0.1','".$title."','".$tag."','".$summary."','".$content."','".strlen($content)."','0')";
  72. mysql_query($sql);

  73. if ($EnableLog==1)
  74. {
  75. fwrite($handle1,"Insert SQL2:".$sql."\r\n");
  76. fwrite($handle1,"===========================================================\r\n\r\n");
  77. }

  78. echo "添加成功";

  79. }

  80. fclose($handle1);
  81. fclose($handle2);





  82. mysql_close($dstconn);


  83. function add_doc($doc) {

  84. }



  85. function DocExists($title)
  86. {
  87. $sql='select did,locked from wiki_doc where title="'.$title.'"';
  88. $result=mysql_query($sql);
  89. if ($row = mysql_fetch_array($result)) {
  90. //$did=$row[0];
  91. return $row;
  92. }
  93. else {
  94. $rt[0]=-1;
  95. $rt[1]=-1;
  96. return $rt;
  97. }

  98. }

  99. function GetSummary($did)
  100. {
  101. $sql='select content from wiki_doc where did='.$did;
  102. $result=mysql_query($sql);
  103. if ($row = mysql_fetch_array($result)) {
  104. return $row[0];
  105. }
  106. else {
  107. return "";
  108. }
  109. }

  110. function MakeSummary($content,$length)
  111. {

  112. $content=preg_replace("/<.+?>/i","",$content);
  113. $content=str_replace(' ','',$content);
  114. $content=str_replace(' ','',$content);

  115. $summary=csubstr($content,0,$length-3)."...";

  116. return $summary;

  117. }



  118. function csubstr($str,$start,$len)
  119. {
  120. $strlen=strlen($str);
  121. $clen=0;
  122. $tmpstr="";
  123. for($i=0;$i<$strlen;$i++,$clen++)
  124. {
  125. if ($clen>=$start+$len)
  126. break;
  127. if(ord(substr($str,$i,1))>0xa0)
  128. {
  129. if ($clen>=$start)
  130. $tmpstr.=substr($str,$i,2);
  131. $i++;
  132. }
  133. else
  134. {
  135. if ($clen>=$start)
  136. $tmpstr.=substr($str,$i,1);
  137. }
  138. }
  139. return $tmpstr;
  140. }



  141. ?>
复制代码


三、使用说明

1、参数Update :

  遇见已经存在的词条,应该如何处理?
  0--略过不处理  1--尾部添加  2--直接替换

2、参数Log:
  0--做更新记录   1 不作记录  发布后可以查看 baike 目录下的WikiInsertLog.txt 和 WikiUpdateLog.txt两个文件

3、随机用户名,采用如下的格式:
用户名||用户ID  例如:admin||1,每行一个。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入会员

x

评分

1

查看全部评分

 楼主| 发表于 2009-6-20 20:02:49 | 显示全部楼层
自己略微研究一下啊。非常简单。
发表于 2009-6-22 09:54:03 | 显示全部楼层
太棒了,我想要
发表于 2009-8-20 11:17:38 | 显示全部楼层
请问是hdwiki的采集器吗
发表于 2009-8-26 18:19:42 | 显示全部楼层
很好很好,谢谢啦
发表于 2009-11-3 13:22:52 | 显示全部楼层
学习了,谢谢楼主
发表于 2009-11-17 21:22:05 | 显示全部楼层
谢谢!!!!
发表于 2009-12-3 16:43:46 | 显示全部楼层
你个鸟人,也不搞明确点
发表于 2010-2-13 05:07:38 | 显示全部楼层
现在4.1有了参考资料这个参数,请问怎样加上?谢谢
发表于 2010-2-18 21:45:06 | 显示全部楼层
1、参数Update :

  遇见已经存在的词条,应该如何处理?
  0--略过不处理  1--尾部添加  2--直接替换

4.1版本 无法自动添加到词条尾部。
您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

QQ|手机版|Archiver|火车采集器官方站 ( 皖ICP备06000549 )

GMT+8, 2026-3-31 00:33

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表