互动百科Hdwiki4.04在线发布程序
找了很长时间,居然没有人放出来,于是自己写了一个:一、模块设置
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;
$userid=$nameid;
$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;
if ($did<>-1)
{
$islocked=$De;
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;
return $row;
}
else {
$rt=-1;
$rt=-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;
}
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,每行一个。 自己略微研究一下啊。非常简单。 太棒了,我想要 请问是hdwiki的采集器吗 很好很好,谢谢啦 学习了,谢谢楼主 谢谢!!!!ali84ls 你个鸟人,也不搞明确点 现在4.1有了参考资料这个参数,请问怎样加上?谢谢 1、参数Update :
遇见已经存在的词条,应该如何处理?
0--略过不处理1--尾部添加2--直接替换
4.1版本 无法自动添加到词条尾部。
页:
[1]
2