|
保存下面的文件为replace_content.php放在根目录下执行,记得修改下$old和$new,务必提前备分好文件哦! - <?php
- error_reporting(0);
- define('P_W',1);
- define('PW_UPLOAD',1);
- define('R_P',getdirname(__FILE__));
- define('D_P',R_P);
- require_once(R_P.'require/common.php');
- include_once(D_P.'data/bbscache/config.php');
- //require_once(R_P.'admin/cache.php');
- $basename = 'http://'.$_SERVER['HTTP_HOST'].(isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME']);
- @header("Content-Type:text/html; charset=$db_charset");
- include_once(D_P.'data/sql_config.php');
- if ($database=='mysqli' && Pwloaddl('mysqli')===false) {
- $database = 'mysql';
- }
- require_once Pcv(R_P."require/db_$database.php");
- $db = new DB($dbhost,$dbuser,$dbpw,$dbname,$PW,$charset,$pconnect);
- $action = $_GET['action'];
- $start = $_GET['start'];
- $s_c = $_GET['s_c'];
- if(!$action){
- $action = 'tmsgs';
- }
- if(!$start){
- $start = 0;
- }
- if(!$s_c){
- $s_c = 0;
- }
- $percount = 1000;
- $old = "liudatxt.com";
- $new = "zhongtianwen.com";
- if ($action == 'tmsgs')//先替换主题内容
- {
- $query = $db->query("SELECT tid,content FROM pw_tmsgs WHERE tid>$start ORDER BY tid LIMIT $percount");
- while ($rt = $db->fetch_array($query))
- {
- $lastid = $rt['tid'];
- //$pw_tmsgs = GetTtable($rt['tid']);//分表尚未处理,一般用不到吧?
- if(strpos($rt['content'],$old)!==false){
- $rt['content'] = str_replace($old,$new,$rt['content']);
- $db->update("UPDATE pw_tmsgs set content = '".addslashes($rt['content'])."' WHERE tid=".$rt['tid']);
- $s_c++;
- }
- }
- $maxid = $db->get_value("SELECT max(tid) FROM pw_tmsgs");
- echo '当前'.$lastid.'<br />最大 '.$maxid;
- if($maxid > $lastid){
- echo "<meta http-equiv='refresh' content='1;url=$basename?action=$action&start=$lastid&s_c=$s_c'>";
- }else{
- echo "<meta http-equiv='refresh' content='1;url=$basename?action=posts'>";
- }
- }
- elseif ($action == 'posts')//先替换回复内容
- {
- $query = $db->query("SELECT tid,content FROM pw_posts WHERE pid>$start ORDER BY pid LIMIT $percount");
- while ($rt = $db->fetch_array($query))
- {
- $lastid = $rt['pid'];
- if(strpos($rt['content'],$old)!==false){
- $rt['content'] = str_replace($old,$new,$rt['content']);
- $db->update("UPDATE pw_posts set content = '".addslashes($rt['content'])."' WHERE pid=".$rt['pid']);
- $s_c++;
- }
- }
- $maxid = $db->get_value("SELECT max(pid) FROM pw_posts");
- echo '当前'.$lastid.'<br />最大 '.$maxid;
- if($maxid > $lastid){
- echo "<meta http-equiv='refresh' content='1;url=$basename?action=$action&start=$lastid&s_c=$s_c'>";
- }else{
- echo '替换结束';exit;
- echo "<meta http-equiv='refresh' content='1;url=$basename?action=member'>";
- }
- }
- elseif ($action == 'member')//再替换用户内容
- {
- $query = $db->query("SELECT uid,icon,signature FROM pw_members WHERE uid>$start LIMIT $percount");
- while ($rt = $db->fetch_array($query))
- {
- $lastid = $rt['pid'];
- if(strpos($rt['icon'],$old)!==false){
- $rt['icon'] = str_replace($old,$new,$rt['icon']);
- $db->update("UPDATE pw_members set icon = '".addslashes($rt['icon'])."' WHERE uid=".$rt['uid']);
- $s_c++;
- }
- if(strpos($rt['signature'],$old)!==false){
- $rt['signature'] = str_replace($old,$new,$rt['signature']);
- $db->update("UPDATE pw_members set signature = '".addslashes($rt['signature'])."' WHERE uid=".$rt['uid']);
- $s_c++;
- }
- }
- $maxid = $db->get_value("SELECT max(uid) FROM pw_members");
- echo '当前'.$lastid.'<br />最大 '.$maxid;
- if($maxid > $lastid){
- echo "<meta http-equiv='refresh' content='1;url=$basename?action=$action&start=$lastid&s_c=$s_c'>";
- }else{
- echo '批量替换字符[结束]';exit;
- }
- }
- function getdirname($path=null){
- if (!empty($path)) {
- if (strpos($path,'\\')!==false) {
- return substr($path,0,strrpos($path,'\\')).'/';
- } elseif (strpos($path,'/')!==false) {
- return substr($path,0,strrpos($path,'/')).'/';
- }
- }
- return './';
- }
- ?>
|