名称: 字符替换程序 For 2.5 by lu5266
演示: 一楼
版本: 2.5&sp1
作者: lu5266
难易: 简单
支持: http://www.5466.ik8.com/
功能:
此程序适合于在dz2.5上 (默认的是2.5 要适合3.0的话,把代码里的的2.5改为3.0 ;)
处理掉帖子,标题里一些你不想要的字符,或者替换一些字符
特别是从2.5升级到3.0的时候会有一些不想要的字符
例如 : 话题类型,3.0现在已经不需要了,因为有了主题分类
或者是从pw转到dz的也会有一些不想要的字符
说明: 转贴请保留以上版权信息。
安装方法:
把下面代码保存为postadmin.php
传到论坛跟目录 运行就可以了
- <?
- $paversion=2.5; //你的论坛版本, 如果是3.0写 3.0 就可以了
- /*
- Name: 字符替换程序
- Author: lu5266
- copyright: lu5266
- site: http://www.5466.ik8.com http://lulu.e-168.cn
-
- Function: 此程序适合于在dz3.0上 ( 要适合2.5的话,把上面的3.0改为 2.5 ;)
- 处理掉帖子,标题里一些你不想要的字符,或者替换一些字符
- 特别是从2.5升级到3.0的时候会有一些不想要的字符
- 或者是从pw转到dz的也会有一些不想要的字符
- declaration: 程序可任意修改,但请保留以上信息,谢谢
- */
- ?>
- <html>
- <head>
- <meta name="save" content="history">
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
- <title>字符替换程序 by lu5266</title>
- <style type="text/css"><!--
- a { text-decoration: none; color: #000000 }
- a:hover { text-decoration: underline; color:#CC3333 }
- body { scrollbar-base-color: #F8F8F8; scrollbar-arrow-color: #72C7CE; font-size: 9pt; background-color: #FFFFFF }
- table { font: 9pt Tahoma, Verdana; color: #000000 }
- input,select,textarea { font: 9pt Tahoma, Verdana; color: #000000; font-weight: normal; background-color: #F8F8F8 }
- select { font: 9pt Tahoma, Verdana; color: #000000; font-weight: normal; background-color: #F8F8F8 }
- .saveHistory {behavior:url(#default#savehistory);}
- --></style>
- <script language=javascript>
- function chkpa(this_pa){
- if(!this_pa.pasource.value){
- alert("要被替换掉的字符不能为空,要不处理什么啊!?!?");
- return false;
- }
- if(this_pa.pamethod[0].checked)
- var paflag="你现在选择的是查看模式,只是查看有多少将要被你替换掉的字符,不会影响数据库内容!";
- else
- var paflag="你现在选择的是处理模式,\n请你确认要替换的字符是否正确. 因为这个是操作数据库的.\n你确定你要执行此程序?";
- if(confirm(paflag)) { return true; this_pa.pasubmit.disabled=true;}
- else return false;
- }
- </script>
- </head>
- <body bgcolor="#E4E4E4">
- <?
- if($paversion==2.5) require_once "./include/common.php";
- else require_once "./include/common.inc.php";
- if(!$discuz_user || $adminid !=1) showmessage("只有管理员才可以使用此管理程序! 你[ $discuz_user ]不是管理员! 请先登陆管理员的帐号再使用!");
- if(!submitcheck('pasubmit')){
- echo '<div align="center"><font color="blue"> <b>字符替换程序</b></font></div>';
- echo '<form name="pa" method="post" action="postadmin.php" onSubmit="return chkpa(this)">';
- echo '<input type="hidden" name="formhash" value="'.FORMHASH.'">';
- echo 'Ⅰ① : 处理每个帖子(包括楼主的和回复的,表cdb_posts记录的)标题: <input type="radio" name="pacontent" class="saveHistory" value="1" checked ><br>';
- echo 'Ⅰ② : 处理主题(这个是进入版块的时候的列表主题 表cdb_threads记录的): <input type="radio" name="pacontent" class="saveHistory"value="3"><br>';
- echo 'Ⅱ: 处理贴内的内容(表cdb_posts记录的): <input type="radio" name="pacontent" class="saveHistory"value="2"><br>';
- echo 'Ⅲ: 请输入要执行的版块的fid, 用 , 隔开多个版块,例如: 1,2,3,10 ( 留空的话为整个论坛): <input type="text" name="pafid" class="saveHistory" onkeyup="value=value.replace(/[^0-9,]/g, \'\')"><br>';
- echo 'Ⅳ: 请输入要执行的帖子的pid, 用 , 隔开多个帖子,例如: 1,2,3,10 ( 留空的话为上面所填版块的所有帖子): <input type="text" name="papid" class="saveHistory" onkeyup="value=value.replace(/[^0-9,]/g,\'\')"><br>';
- echo 'Ⅴ: 请输入将要被替换掉的字符: <input type="text" name="pasource" class="saveHistory"><br>';
- echo 'Ⅵ: 请输入用来替换的字符(留空的话,就是用空来代替): <input type="text" name="patarget" class="saveHistory"><br>';
- echo 'Ⅶ: ①查看模式: <input type="radio" name="pamethod" class="saveHistory" value="1" checked> ';
- echo ' ②处理模式: <input type="radio" name="pamethod" class="saveHistory" value="2"><br>';
- echo '<p align="center"><input type="submit" name="pasubmit" value="提交"></p></form>';
- }
- else{
- $pafid=trim($pafid);
- $papid=trim($papid);
- if($pacontent==1) $pacontent="subject";
- elseif($pacontent==3) $pacontent="thread";
- else $pacontent="message";
- if($pamethod==1) $altmethod="的".$pacontent."进行 '".$patarget."' 替换 '".$pasource."' 的替换前查看,处理结果也是替换预览,此操作不会对论坛有任何影响.";
- else $altmethod="的".$pacontent."进行 '".$patarget."' 替换 '".$pasource."' 的替换处理,此操作是根据你的请求而修改.";
- if($pacontent=="thread"){
- if($pafid){
- $query=" select fid,tid,subject from cdb_threads where fid IN ($pafid) and subject like '%$pasource%' order by tid asc";
- $alttext="你现在是对版块为".$pafid.$altmethod;
- }
- else{
- $query="select fid,tid,subject from cdb_threads where subject like '%$pasource%' order by tid asc";
- $alttext="你现在是对整个论坛".$altmethod;
- }
- }
- else{
- if($pafid && $papid){
- $query="select fid,tid,pid,message,subject from cdb_posts where fid IN ($pafid) and pid IN ($papid) and $pacontent like '%$pasource%' order by pid asc";
- $alttext="你现在是对版块为".$pafid.",pid为".$papid.$altmethod;
- }
- elseif(!$pafid && !$papid){
- $query="select fid,tid,pid,message,subject from cdb_posts where $pacontent like '%$pasource%' order by pid asc";
- $alttext="你现在是对整个论坛".$altmethod;
- }
- else{
- if($pafid) {
- $query="select fid,tid,pid,message,subject from cdb_posts where fid IN ($pafid) and $pacontent like '%$pasource%' order by pid asc";
- $alttext="你现在是对fid为".$pafid.$altmethod;
- }
- else {
- $query="select fid,tid,pid,message,subject from cdb_posts where pid IN ($papid) and $pacontent like '%$pasource%' order by pid asc";
- $alttext="你现在是对pid为".$pafid.$altmethod;
- }
- }
- }
- $result = $db->query($query);
- echo " 总共有<font color=red >".$db->num_rows($result)."</font>条记录<br><br> <font color=red >由于你的记录可能很多,请耐心等待,处理完成前请不要关闭此窗口</font><br><br>";
- echo " <font color=blue ><b>". $alttext."</b> </font> <br>";
- echo " <font color=green >读取的结果是: </font> <br>";
- if($pacontent=="thread"){
- while($thread = $db->fetch_array($result)){
- echo "fid=".$thread[fid]." tid=".$thread[tid]."<br>";
- $thread[subject]=str_replace($pasource,$patarget,$thread[subject]);
- $thread[subject]=addslashes($thread[subject]);
- echo "处理后: tid=".$thread[tid].", 主题:".$thread[subject] ."<br>";
- if($pamethod==2) $db->query("update cdb_threads set subject='$thread[subject]' where tid='$thread[tid]'");
- }
- }
- else{
- while($thread = $db->fetch_array($result)){
- echo "fid=".$thread[fid]." tid=".$thread[tid].": pid=".$thread[pid] ."<br>";
- $thread[$pacontent]=str_replace($pasource,$patarget,$thread[$pacontent]);
- $thread[$pacontent]=addslashes($thread[$pacontent]);
- if($pacontent=="subject") echo "处理后: tid=".$thread[tid].", 标题:".$thread[subject] ."<br>";
- if($pamethod==2) $db->query("update cdb_posts set $pacontent='$thread[$pacontent]' where pid='$thread[pid]'");
- }
- }
- if($pamethod==2) echo "<br><br><font color=red >严重恭喜你,所有的替换已经完成,你可以刷新此页,看看还有没有记录.</font><br><br><br></center>";
- else echo "<br><br><font color=red >以上就是你的查看结果.要替换的话,请后退后选择处理模式,再执行.</font><br><br><br></center>";
- }
- ?>
- </body>
- </html>
复制代码 |