加载配置文件
<?php // WEICOT 数据库引入文件 include_once("Mysql.php"); use Weicot\Mysql; $DB=new MySql; $DB->setDb("wp_20012"); // 选择数据库
删除同一ip 超过某个数值的评论
//同一IP 评论统计代码 $sql='select comment_author_IP, count(comment_author_IP) as num from ( select comment_author_IP from wp_comments where comment_author_IP is not null ) as total group by comment_author_IP order by num desc'; //评论统计 $data=$DB->data($sql); //获得数据 $total=20; //评论大于多少(同一Ip 的评论数) echo "大于".$total." 评论的IP \r\n"; foreach($data["data"] as $value){ if($value["num"]>$total){ echo $value["comment_author_IP"]."\t".$value["num"]."\t"; echo $del='delete from wp_comments WHERE comment_author_IP="'.$value["comment_author_IP"].'"'; echo "\t"; if($DB->exe($del)){ //执行 echo "删除完成 \r\n"; } }else{ continue; } }
C:\Users\Administrator>php C:\Users\Administrator\Desktop\GET\upstatus.php 大于20 评论的IP 46.161.9.23 3921 delete from wp_comments WHERE comment_author_IP="46.161.9.23" 删除完成 46.161.9.22 3462 delete from wp_comments WHERE comment_author_IP="46.161.9.22" 删除完成 146.185.223.55 84 delete from wp_comments WHERE comment_author_IP="146.185.223.55" 删除完成 146.185.223.67 78 delete from wp_comments WHERE comment_author_IP="146.185.223.67" 删除完成 46.118.153.31 74 delete from wp_comments WHERE comment_author_IP="46.118.153.31" 删除完成 146.185.223.57 71 delete from wp_comments WHERE comment_author_IP="146.185.223.57" 删除完成 146.185.223.140 68 delete from wp_comments WHERE comment_author_IP="146.185.223.140" 删除完成 146.185.223.180 67 delete from wp_comments WHERE comment_author_IP="146.185.223.180" 删除完成 146.185.223.77 66 delete from wp_comments WHERE comment_author_IP="146.185.223.77" 删除完成 146.185.223.150 66 delete from wp_comments WHERE comment_author_IP="146.185.223.150" 删除完成 146.185.223.120 66 delete from wp_comments WHERE comment_author_IP="146.185.223.120" 删除完成 146.185.223.110 65 delete from wp_comments WHERE comment_author_IP="146.185.223.110" 删除完成 146.185.223.80 65 delete from wp_comments WHERE comment_author_IP="146.185.223.80" 删除完成 146.185.223.170 65 delete from wp_comments WHERE comment_author_IP="146.185.223.170" 删除完成 146.185.223.73 63 delete from wp_comments WHERE comment_author_IP="146.185.223.73" 删除完成 146.185.223.167 63 delete from wp_comments WHERE comment_author_IP="146.185.223.167" 删除完成 146.185.223.130 61 delete from wp_comments WHERE comment_author_IP="146.185.223.130" 删除完成 146.185.223.97 61 delete from wp_comments WHERE comment_author_IP="146.185.223.97" 删除完成 146.185.223.160 60 delete from wp_comments WHERE comment_author_IP="146.185.223.160" 删除完成 134.249.141.24 59 delete from wp_comments WHERE comment_author_IP="134.249.141.24" 删除完成 134.249.51.228 40 delete from wp_comments WHERE comment_author_IP="134.249.51.228" 删除完成 46.118.157.125 33 delete from wp_comments WHERE comment_author_IP="46.118.157.125" 删除完成
删除评论中含有 http或htts(链接) 的品评论
// 找出 ping论中 带https:的评论并删除 如果只找出 http 那么 %http:% 这里为http $sql="select * from wp_comments where comment_content like '%https:%' and 'cooment_approved' NOT LIKE '1' "; $data=$DB->data($sql); //获得数据 $total=4; //评论大于多少 echo "大于".$total." 评论的IP \r\n"; $i=0; foreach($data["data"] as $value){ echo $value["comment_author_IP"]."\t".$value["comment_author_email"]."\t". $value["comment_date"]."\t".$value["comment_agent"]."\r\n"; echo $del='delete from wp_comments WHERE comment_author_IP="'.$value["comment_author_IP"].'"'; echo "\t"; if($DB->exe($del)){ //执行 echo "删除完成 \r\n"; $i++; } } echo "total:". $i."\r\n";
新建评论表
$create="CREATE TABLE `wp_comments` ( `comment_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `comment_post_ID` bigint(20) unsigned NOT NULL DEFAULT '0', `comment_author` tinytext NOT NULL, `comment_author_email` varchar(100) NOT NULL DEFAULT '', `comment_author_url` varchar(200) NOT NULL DEFAULT '', `comment_author_IP` varchar(100) NOT NULL DEFAULT '', `comment_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `comment_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `comment_content` text NOT NULL, `comment_karma` int(11) NOT NULL DEFAULT '0', `comment_approved` varchar(20) NOT NULL DEFAULT '1', `comment_agent` varchar(255) NOT NULL DEFAULT '', `comment_type` varchar(20) NOT NULL DEFAULT '', `comment_parent` bigint(20) unsigned NOT NULL DEFAULT '0', `user_id` bigint(20) unsigned NOT NULL DEFAULT '0', `comment_mail_notify` tinyint(4) NOT NULL DEFAULT '0', PRIMARY KEY (`comment_ID`), KEY `comment_post_ID` (`comment_post_ID`), KEY `comment_approved_date_gmt` (`comment_approved`,`comment_date_gmt`), KEY `comment_date_gmt` (`comment_date_gmt`), KEY `comment_parent` (`comment_parent`), KEY `comment_author_email` (`comment_author_email`(10)) ) ENGINE=MyISAM AUTO_INCREMENT=17412 DEFAULT CHARSET=utf8"; var_dump($DB->exe($create));
Mysql 文件
<?php // 简易连接器 namespace Weicot; class MySql { static $con; public static $sname ; public static $uname ; public static $pword ; public static $dbname; static public function setDb($db){ self::$dbname=$db; } /** * @throws \Exception */ static public function ini(){ self::$sname=""; //host 地址 self::$uname=""; //用户名 self::$pword=""; //密码 self::$con = @mysql_connect(self::$sname, self::$uname, self::$pword); if (!self::$con) { throw new \Exception("数据库连接错误" . mysql_error()); } } /*** * @param $sql * @return resource * @throws \Exception * 执行sql */ static public function exe($sql) { self::ini(); mysql_select_db(self::$dbname,self::$con); mysql_query("SET NAMES UTF8");//设置 客户端查询编码 mysql_query("set global max_allowed_packet = 2*1024*1024*10");//设置 Pake 大小 $out = mysql_query($sql, self::$con); if (!$out) { throw new \Exception("查询错误" . mysql_error()); } return $out; } /*** * @param $sql * @return array * @throws \Exception * 获得mysql 查询数组 */ static public function data($sql) { $sql =self::exe($sql); $rows=mysql_num_rows($sql); //获得行数 $rwr = array(); $rwr['rows'] = $rows; while ($row = mysql_fetch_array($sql)) { $rwr['data'][] = $row; } return $rwr; } public function __destruct() { mysql_close(self::$con); } }
完整代码
<?php /** * WeiCot Framework * User: jiang * Date: 2015/5/15 * Time: 17:16 * 数据库操作基类 */ namespace Weicot\Core; class Database { static $con; public static $sname; public static $uname; public static $pword; public static $dbname; public static $showQuery; static public function ini() { $config = File::getConfig(); self::$sname = $config["DbHost"]; self::$uname = $config["DbUserName"]; self::$pword = $config["DbPassword"]; self::$dbname = $config["DbName"]; self::$con = @mysql_connect(self::$sname, self::$uname, self::$pword); if (!self::$con) { throw new \Exception("数据库连接错误" . mysql_error()); } } static public function log($value, $file = "sys.log") { $basePath = "./var/log/"; if (is_array($value) && count($value)) { file_put_contents($basePath . $file, date('H-i-s') . "=>" . var_export($value, TRUE) . "\r\n", FILE_APPEND); } else { file_put_contents($basePath . $file, date('H-i-s') . "=>" . $value . "\r\n", FILE_APPEND); } } static public function exe($sql) { self:: log($sql, "query.log"); self::ini(); mysql_select_db(self::$dbname, self::$con); mysql_query("SET NAMES UTF8");//设置 客户端查询编码 $out = mysql_query($sql, self::$con); if (!$out) { throw new \Exception("查询错误" . mysql_error()); } return $out; } /** * @param $sql * @param bool|false $row * @return array|int * @throws \Exception * 获得数据 */ static public function data($sql, $row = false) { $sql = self::exe($sql); //返回行数 if ($row) { return mysql_num_rows($sql); //获得行数 } $rows = mysql_num_rows($sql); //获得行数 $rwr = array(); $rwr['rows'] = $rows; while ($row = mysql_fetch_array($sql)) { $rwr['data'][] = $row; } return $rwr; } static function getDbDate() { return date('Y-m-d H:i:s', time()); } static function getIp() { $ip = false; if (!empty($_SERVER["HTTP_CLIENT_IP"])) { $ip = $_SERVER["HTTP_CLIENT_IP"]; } if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ips = explode(", ", $_SERVER['HTTP_X_FORWARDED_FOR']); if ($ip) { array_unshift($ips, $ip); $ip = FALSE; } for ($i = 0; $i < count($ips); $i++) { if (!eregi("^(10|172\.16|192\.168)\.", $ips[$i])) { $ip = $ips[$i]; break; } } } return ($ip ? $ip : $_SERVER['REMOTE_ADDR']); } /*** * @param $value 输入值 xss * @return mixed */ static function xss($value) { return htmlspecialchars($value); } public function __destruct() { @mysql_close(self::$con); } /*** * @param $sql * @param bool|false $row * @return array|bool|int|mixed * @throws \Exception */ static public function cacheData($sql,$prefix="cache",$row = false) { $cache = self::isCache($sql,$prefix); if ($cache) { return $cache; } else { $resource = self::exe($sql); //返回行数 if ($row) { return mysql_num_rows( $resource); //获得行数 } $rows = mysql_num_rows( $resource); //获得行数 $rwr = array(); $rwr['rows'] = $rows; while ($row = mysql_fetch_array( $resource)) { $rwr['data'][] = $row; } self::cacheFile($sql, $rwr,$prefix); return $rwr; } } /*** * @param $sql * @return bool|mixed * 判断是否缓存 */ static function isCache($sql,$prefix="cache") { $fileName =$prefix."_". md5($sql); $file = "./var/cache/sqldata/" . $fileName; if (file_exists($file)) { $data = file_get_contents($file); return unserialize($data); } else { return false; } } /** * 查询缓存 * @param $sql * @param $data */ static function cacheFile($sql,$data,$prefix="cache") { $fileName =$prefix."_". md5($sql); $file = "./var/cache/sqldata/" . $fileName; $msg = serialize($data); $fp = fopen($file, "w"); fputs($fp, $msg); fclose($fp); } /*** * @param $ostr * @return string */ public function filter_utf8_char($ostr) { preg_match_all('/[\x{FF00}-\x{FFEF}|\x{0000}-\x{00ff}|\x{4e00}-\x{9fff}]+/u', $ostr, $matches); $str = join('', $matches[0]); if ($str == '') { //含有特殊字符需要逐個處理 $returnstr = ''; $i = 0; $str_length = strlen($ostr); while ($i <= $str_length) { $temp_str = substr($ostr, $i, 1); $ascnum = Ord($temp_str); if ($ascnum >= 224) { $returnstr = $returnstr . substr($ostr, $i, 3); $i = $i + 3; } elseif ($ascnum >= 192) { $returnstr = $returnstr . substr($ostr, $i, 2); $i = $i + 2; } elseif ($ascnum >= 65 && $ascnum <= 90) { $returnstr = $returnstr . substr($ostr, $i, 1); $i = $i + 1; } elseif ($ascnum >= 128 && $ascnum <= 191) { // 特殊字符 $i = $i + 1; } else { $returnstr = $returnstr . substr($ostr, $i, 1); $i = $i + 1; } } $str = $returnstr; preg_match_all('/[\x{FF00}-\x{FFEF}|\x{0000}-\x{00ff}|\x{4e00}-\x{9fff}]+/u', $str, $matches); $str = join('', $matches[0]); } return $str; } /*** * @param $string * @return string * 转意 */ public function string($string) { return addslashes($string); } } ?>
删除垃圾文章
#delete from ... using ... where ....。 delete from wp_posts using wp_posts, wp_term_relationships, wp_term_taxonomy where wp_posts.id=wp_term_relationships.object_id and wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id and wp_term_relationships.term_taxonomy_id = 11 wp_term_relationships 需要删除对应的文章分类关系,不然记录条数和原来的wp_posts 一样, 查询: SELECT * FROM `wp_term_relationships` where term_taxonomy_id=11 删除: delete FROM `wp_term_relationships` where term_taxonomy_id=11 记得优化下表 把wp_term_taxonomy里的分类文章数量计数的几W count 给归零 UPDATE `wp_term_taxonomy` SET `count` = '0' WHERE `wp_term_taxonomy`.`term_taxonomy_id` =11 LIMIT 1 ;
转载请注明:(●--●) Hello.My Weicot » wordpress 大批量删除无用评论 以及垃圾评论统计 和文章 php 代码