Mata-HOYGAN 4.2 - Código para comentarios antiguos

  • Autor Autor Cicklow
  • Fecha de inicio Fecha de inicio
C

Cicklow

Este codigo es la respuesta para los comentarios viejos de su blog, solo lo ejecutan desde la consola o desde el navegador (tarda menos desde la consola -> php cron_mata_HOYGAN.php)

El codigo es simple primero definimos si vamos a trabajar directamente con la base de datos, si queremos ver el codigo SQL en pantalla, la diferencia de esto es que si trabajamos directamente con la base de datos los comentarios seran modificados (PREVIO BAKUP ANTES), si mostramos en pantalla la consulta SQL, aparecera en la pantalla todo el codigo SQL a mostrar y luego lo pueden guardar en un archivo y ejecutarlo desde el phpMyAdmin u otro administrador de BD. A tener en cuenta: si lo ejecutan desde la consola tienen que poner: php cron_mata_HOYGAN.php>file.sql para poder guardar lo que se genera.

El codigo trabaja con muchos codigo de UTF8 ya que tengo que arreglar los caracteres UTF8, porque por ejemplo si al tener pépé y lo guardamos directamente el mySQL corta la cadena en p.

Saludos!

PHP:
<?php
	@set_time_limit(0);
	define('Como','1'); 	//Como = 1 es para que trabaje con la base de datos directamente
				//Como = 0 es para que ponga en pantalla el codigo SQL y luego desde el phpmyadmin se coloca el codigo!

	require('wp-config.php');

	$SQL = mysql_query("SELECT * FROM ".$wpdb->comments);
	while($ROW = mysql_fetch_array($SQL)){
		$iA = mata_HOYGAN(utf8_decode($ROW['comment_content']));

		if(($iA != $ROW['comment_content'])){
			$CONSULTA = "UPDATE ".$wpdb->comments." SET comment_content='".utf8tohtml(utf8_encode(mysql_real_escape_string($iA)),false)."' WHERE comment_ID='".$ROW['comment_ID']."' LIMIT 1";
			if(Como=="1"){
				mysql_query($CONSULTA);
			}else{
				echo $CONSULTA."\n";
			}
		}
	}

	function utf8tohtml($utf8, $encodeTags) {
		$result = '';
		for ($i = 0; $i < strlen($utf8); $i++) {
			$char = $utf8[$i];
			$ascii = ord($char);
			if ($ascii < 128) {
				$result .= ($encodeTags) ? htmlentities($char) : $char;
			} else if ($ascii < 192) {

			} else if ($ascii < 224) {
				$result .= htmlentities(substr($utf8, $i, 2), ENT_QUOTES, 'UTF-8');
				$i++;
			} else if ($ascii < 240) {
				$ascii1 = ord($utf8[$i+1]);
				$ascii2 = ord($utf8[$i+2]);
				$unicode = (15 & $ascii) * 4096 + (63 & $ascii1) * 64 + (63 & $ascii2);
				$result .= "&#$unicode;";
				$i += 2;
			} else if ($ascii < 248) {
				$ascii1 = ord($utf8[$i+1]);
				$ascii2 = ord($utf8[$i+2]);
				$ascii3 = ord($utf8[$i+3]);
				$unicode = (15 & $ascii) * 262144 + (63 & $ascii1) * 4096 + (63 & $ascii2) * 64 + (63 & $ascii3);
				$result .= "&#$unicode;";
				$i += 3;
			}
		}
		return $result;
	}
?>

Ver el archivo adjunto 1393

http://forobeta.com/plugins-wp/6445...comentarios-o-adsense-y-panda-te-joderan.html

PD: Sino tienen instalado y activado el plugin mata-HoyGan NO FUNCIONA!!!
PD: cron_mata_HOYGAN.php tiene que estar en el mismo directorio que wp-config.php

Yo no me hago responsable si no hacen un backup antes!!
 
Última edición:
Buen ya probé el código y daba un error pero es porque faltaba declarar "global $wpdb;", después de agregarlo funciono perfecto pero lo probé en un sitio nuevo con 2 comentarios viejos que tenia

Cuando haga la prueba con un sitio mas grande lo añado a la nueva versión así que denme unas horas en la noche lo hago.

Gracias por ayudar a mejorar el Plugin :welcoming:
 
que raro lo del $wpdb a mi me funciono sin declaralo, es mas solo lo declaras si lo llamas desde adentro de una funcion... (por el tema de las variables globales)... Pero a los que no les funcionen coloquen lo que dice SoloNegocios

Saludos!

PD: Si tienes por ejemplo perra lo convierte a **** pero si tienes pérra no lo convierte!!
Saludos!
 
que raro lo del $wpdb a mi me funciono sin declaralo, es mas solo lo declaras si lo llamas desde adentro de una funcion... (por el tema de las variables globales)... Pero a los que no les funcionen coloquen lo que dice SoloNegocios

Saludos!

PD: Si tienes por ejemplo perra lo convierte a **** pero si tienes pérra no lo convierte!!
Saludos!

Es que ya es una función del Plugin "deshoyganizar_comentarios_viejos()" por eso no me servía, la nueva versión llevara ese código ya incluido, buscare las funciones de WP para programar un cron para que sea mas fácil a los demás usarlo.

Lo de las tildes no es tan necesario los HOYGANS no usan tildes xD
 
Con este codigo cree 3000 comentarios en mi blog, y mi script tardo menos de un minuto en chequear los 3mil comentarios
file-2c00728f12dfac903b9470be0330d02f.jpg

PHP:
<?php
	@set_time_limit(0);

	require('wp-config.php');

	for($x=1;$x<=3000;$x++){
		$fecha = gmdate('Y-m-d H:i:s', time());
		$CONSULTA = "INSERT INTO ".$wpdb->comments." VALUES ('', 1, 'PEPE ".$x."', '', 'http://wordpress.org/?p=".$x."', '', '".$fecha."', '".$fecha."', 'perra ke kiero paja perra perra perra puta plata payaso', 0, '1', '', '', 0, 0);";

		mysql_query($CONSULTA);
	}
	die('1');
?>

Saludos!
 
Atrás
Arriba