|
|
找了很长时间,居然没有人放出来,于是自己写了一个:
一、模块设置
1、文章发表地址后缀:/dwiki.php?
2、发表post数据 如下:
- title=[标签:标题]&content=[标签:内容]&time=[系统时间戳]&categoryid=[分类ID]&nameid=[随机用户名]&tag=[标签:标题]&update=1&log=1
复制代码
3、发表错误标识码:添加失败
4、成功标识码: 添加成功
特别说明:支持变换用户名。 但格式必须为 : admin||1 的格式
必须指定栏目
二、发布程序
以下代码,存为dwiki.php 上传到百科的根目录就可以啦。
- <?
- define('HDWIKI_ROOT', dirname(__FILE__));
- require HDWIKI_ROOT.'/config.php';
- require HDWIKI_ROOT.'/lib/string.class.php';
- //$UpdateDuplicate=1; // 0--不替换 1--尾部添加 2--直接替换
- //$EnableLog=0; //0--No Log 1 Log
- $title=$_REQUEST["title"];
- $content=$_REQUEST["content"];
- //if ((trim($title)=="") or (trim($content)=="")) { echo "添加失败";exit();}
- $tag=$_REQUEST["tag"];
- $tag=str_replace(',',';',$tag);
- if (trim($tag)=="") {$tag=$title;}
- $categoryid=$_REQUEST["categoryid"];
- $nameid=$_REQUEST["nameid"];
- $nameid=explode("||",$nameid);
- $username=$nameid[0];
- $userid=$nameid[1];
- $time=$_REQUEST["time"];
- $letter=string::getfirstletter($title);
- $UpdateDuplicate=$_REQUEST["update"];
- $EnableLog=$_REQUEST["log"];
- if ($UpdateDuplicate=="") { $UpdateDuplicate=0; }
- if ($EnableLog=="") { $EnableLog=0; }
- $EnableLog=0;
- if (trim($classid)=="") { $classid=1;}
- $handle1 = fopen("WikiInsertLog.txt","a+");
- $handle2 = fopen("WikiUpdateLog.txt","a+");
- $dstconn=mysql_connect(DB_HOST,DB_USER,DB_PW)
- or die("不能连接数据库服务器: ".mysql_error());
- mysql_select_db(DB_NAME,$dstconn) or die ("不能选择数据库: ".mysql_error());
- mysql_query("SET NAMES 'GBK'");
- $summary=MakeSummary($content,250);
- $De=DocExists($title);
- $did=$De[0];
- if ($did<>-1)
- {
- $islocked=$De[1];
- if (islocked==1) { exit();} //主题被锁定
- switch ($UpdateDuplicate)
- {
- case 0: //跳过
- exit();
- case 1: //追加
- $sql="UPDATE ".DB_TABLEPRE."doc SET tag=concat(tag,';','".$tag."'),content=concat
- (content,'<p></p>','".$content."'),lastedit='".$time."',lasteditor='".$username."',lasteditorid='".$userid."',edits=edits+1,editions=editions+1,visible='1' WHERE did=".$did;
- break;
- case 2: //更新
- $sql="UPDATE ".DB_TABLEPRE."doc SET tag='".$tag."',summary='".$summary."'
- ,content='".$content."',lastedit='".$time."',lasteditor='".$username."',lasteditorid='".$userid."',edits=edits+1,editions=editions+1,visible='1' WHERE did=".$did;
- break;
- }
- mysql_query($sql);
- if ($EnableLog==1)
- {
- fwrite($handle2,"Update SQL:".$sql."\r\n");
- fwrite($handle2,"===========================================================\r\n\r\n");
- }
- echo "添加成功";
- }
- else
- {
- $sql="INSERT INTO ".DB_TABLEPRE."doc (cid,letter,title,tag ,summary ,content,author,authorid,time,lastedit,lasteditor,lasteditorid,visible) VALUES
- ('".$categoryid."','".$letter."','".$title."','".$tag."','".$summary."','".$content."','".$username."','".$userid."',".$time.",".$time.",'".$username."','".$userid."','1')";
- mysql_query($sql);
- if ($EnableLog==1)
- {
- fwrite($handle1,"Insert SQL1:".$sql."\r\n");
- }
- $did=mysql_insert_id();
- $sql="INSERT INTO ".DB_TABLEPRE."edition (cid,did,author,authorid,time,ip,title,tag,summary,content,words,images ) VALUES
- ('".$categoryid."',$did,'".$username."','".$userid."','".$time."','127.0.0.1','".$title."','".$tag."','".$summary."','".$content."','".strlen($content)."','0')";
- mysql_query($sql);
- if ($EnableLog==1)
- {
- fwrite($handle1,"Insert SQL2:".$sql."\r\n");
- fwrite($handle1,"===========================================================\r\n\r\n");
- }
- echo "添加成功";
- }
- fclose($handle1);
- fclose($handle2);
- mysql_close($dstconn);
- function add_doc($doc) {
- }
- function DocExists($title)
- {
- $sql='select did,locked from wiki_doc where title="'.$title.'"';
- $result=mysql_query($sql);
- if ($row = mysql_fetch_array($result)) {
- //$did=$row[0];
- return $row;
- }
- else {
- $rt[0]=-1;
- $rt[1]=-1;
- return $rt;
- }
- }
- function GetSummary($did)
- {
- $sql='select content from wiki_doc where did='.$did;
- $result=mysql_query($sql);
- if ($row = mysql_fetch_array($result)) {
- return $row[0];
- }
- else {
- return "";
- }
- }
- function MakeSummary($content,$length)
- {
- $content=preg_replace("/<.+?>/i","",$content);
- $content=str_replace(' ','',$content);
- $content=str_replace(' ','',$content);
- $summary=csubstr($content,0,$length-3)."...";
- return $summary;
- }
- function csubstr($str,$start,$len)
- {
- $strlen=strlen($str);
- $clen=0;
- $tmpstr="";
- for($i=0;$i<$strlen;$i++,$clen++)
- {
- if ($clen>=$start+$len)
- break;
- if(ord(substr($str,$i,1))>0xa0)
- {
- if ($clen>=$start)
- $tmpstr.=substr($str,$i,2);
- $i++;
- }
- else
- {
- if ($clen>=$start)
- $tmpstr.=substr($str,$i,1);
- }
- }
- return $tmpstr;
- }
- ?>
复制代码
三、使用说明
1、参数Update :
遇见已经存在的词条,应该如何处理?
0--略过不处理 1--尾部添加 2--直接替换
2、参数Log:
0--做更新记录 1 不作记录 发布后可以查看 baike 目录下的WikiInsertLog.txt 和 WikiUpdateLog.txt两个文件
3、随机用户名,采用如下的格式:
用户名||用户ID 例如:admin||1,每行一个。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?加入会员
x
评分
-
1
查看全部评分
-
|