Clase PHP para calcular tamaño de un directorio

Si necesitamos saber cuál es el tamaño de un directorio, cuantos subdirectorios o archivos tiene, la clase Disk Usage, creada por Nitesh Apte, es una excelente opción a tener en cuenta.

Esta Clase PHP puede recorrer el directorio que le indiquemos y traernos como respuesta el tamaño de los mismos en Megabytes, Gigabytes o Kilobytes, así como también la cantidad de archivos y directorios que contiene.

Para utilizarla primero debemos descargar la clase desde este enlace:
http://vgk.me/17

Dentro del archivo .zip hay dos archivos, uno es la clase y el otro (index.php) es un claro ejemplo de como utilizarla.

Si no sabemos cual es la ruta absoluta de un directorio dentro de nuestro server, podemos averiguarla ejecutando el siguiente código:
echo $_SERVER['DOCUMENT_ROOT'];

Para contactar con el autor de las clase: http://www.phpclasses.org/professionals/profile/5133/

Boton me gusta de Facebook en WordPress

Hace unos días instalamos el botón «Me Gusta» de Facebook dentro de nuestros artículos y varios usuarios de Twitter y Facebook nos preguntaron como podían hacerlo en sus blogs. Para ellos la explicación:

Primero debemos aclarar que Facebook cuenta con un generador automático, es decir un panel dentro de su sitio que nos permite seleccionar las dimensiones del botón y la URL del mismo, una vez indicado esto nos entrega el código que debemos ingresar en nuestro sitio.

La única desventaja que tiene este método es que no funciona para sitios dinámicos, como es el caso de WordPress. Si aún así crees que puede servirte, te invitamos a visitarlo: http://developers.facebook.com/docs/reference/plugins/like

Ahora si, volvamos a lo nuestro. Para poder aplicarlo a sitios hechos en WordPress, desde Vitamina Geek lo que hicimos fue tomar el código generado por Facebook e ingresar la variable que contiene la información de la URL dentro de la función urlencode() de PHP, el resultado:

<iframe src="http://www.facebook.com/plugins/like.php?href=<?php echo urlencode(get_permalink($post->ID)); ?>&amp;layout=standard&amp;show-faces=true&amp;width=250&amp;action=like&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:250px; height:30px"></iframe>

Modificando el texto marcado en Negrita podemos modificar las dimensiones del elemento.

Copiando este código e ingresandolo dentro de nuestros archivos en el Panel de Control en WordPress, habilitaremos el botón «Me Gusta» de Facebook. Por ejemplo, para colocarlo dentro de nuestros artículos ingresamos en «Apariencia»->»Editor»->»single.php» y colocamos el código dentro del archivo en la ubicación que deseemos.

Crear códigos de barra en PHP

BarcodePHP es una clase desarrollada por Jean-Baptiste DEMONTE (usuario de PHPClasses.org), para generar códigos de barra en PHP de forma rápida y sencilla.

Como es de esperarse utiliza la libreria GD para generar las imagenes, además cuenta con la posibilidad de exportar los códigos en formato .pdf (a través de FPDF).

Este recurso PHP soporta la codificación estandar del sistema de códigos de barra internacional, podemos encontrar el detalle soportado aqui.

Para descargar la clase e implementarla en nuestros trabajos, debemos ingresar a: http://barcode-coder.com/en/barcode-php-class-203.html donde encontraremos la información necesaria sobre los distintos métodos y posibles configuraciones.

Además en la página oficial podremos ver un Generador Online de Códigos de Barra, ideal para probarla antes de descargar e «instalar».

Momentaneamente no hemos probado esta herramienta, sin embargo tenemos planeado hacerlo en los próximos días para implementarla en el sistema de un cliente.

Enlace: http://barcode-coder.com/en/

¿Un antivirus para tus páginas PHP?

PHP Vulnerability Scanner es una clase PHP que nos servirá para analizar los contenidos de nuestros proyectos en busca de códigos malisiosos que pudieron ser insertados por terceros.

Actualmente la clase tiene la capacidad de recorrer un directorio de forma recursiva en busca de codificación utilizada actualmente para alojar scripts malisiosos, como puede ser base64_encode y base64_decode.

Es recomendable la utilización a usuarios que sospechan que han sido victimas de algún «Virus en PHP», generalmente insertado por Spammers, una actividad muy común en blogs de WordPress (lo digo por experiencia personal).

Ejemplo de uso:
<?php
$dir="../Facebook Clones"; // Carpeta a escanear
$toScanArray=array("base64_encode", "base64_decode", "unescape"); // Qué buscar dentro (posible virus / código malisioso)
require_once("phpVulnerabilityScanner.inc.php");
$phpVulnerabilityScanner = new PhpVulnerabilityScanner($dir,$toScanArray);
$phpVulnerabilityScanner->showResult();
?>

Detectar bot con PHP

Muchas veces estamos a punto de lanzar un sitio pero todavia no nos interesa que los robots de busqueda lo indexen, quiza porque aun no hemos terminado el trabajo SEO o quiza simplemente queremos saber cuantas veces al dia ingresa el bot a nuestra pagina.

Si contamos con soporte PHP en nuestro servidor, agregando las siguientes lineas podremos saber si el que acaba de entrar a la web es o no un bot.

$SEARCH_ENGINES_UA = array(
// Google Web
‘Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)’,
‘Googlebot/2.1 (+http://www.googlebot.com/bot.html)’,
‘Googlebot/2.1 (+http://www.google.com/bot.html)’,
// Yahoo! Web
‘Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)’,
// MSN web
‘msnbot/1.0 (+http://search.msn.com/msnbot.htm)’,
‘msnbot/0.9 (+http://search.msn.com/msnbot.htm)’,
‘msnbot/0.11 ( http://search.msn.com/msnbot.htm)’,
‘MSNBOT/0.1 (http://search.msn.com/msnbot.htm)’
);

if(in_array($_SERVER[‘HTTP_USER_AGENT’],$SEARCH_ENGINES_UA))
{
header(‘HTTP/1.1 302 Found’);
header(«Location: http://www.internetox.com/»);
exit();
}

Vamos a explicar el codigo:

$SEARCH_ENGINES_UA = array(
// Google Web
‘Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)’,
‘Googlebot/2.1 (+http://www.googlebot.com/bot.html)’,
‘Googlebot/2.1 (+http://www.google.com/bot.html)’,
// Yahoo! Web
‘Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)’,
// MSN web
‘msnbot/1.0 (+http://search.msn.com/msnbot.htm)’,
‘msnbot/0.9 (+http://search.msn.com/msnbot.htm)’,
‘msnbot/0.11 ( http://search.msn.com/msnbot.htm)’,
‘MSNBOT/0.1 (http://search.msn.com/msnbot.htm)’
);

Es el array en el que se encuentran detallados los User Agent conocidos de los distintos buscadores (en este caso solo Yahoo, Google y Live), ese User Agent es lo que usa el bot para identificarse frente al servidor.

if(in_array($_SERVER[‘HTTP_USER_AGENT’],$SEARCH_ENGINES_UA))
{
header(‘HTTP/1.1 302 Found’);
header(«Location: http://www.internetox.com/»);
exit();
}

Segunda parte, con la funcion in_array preguntamos si el «$_SERVER[‘HTTP_USER_AGENT’]» (osea el nombre con el que se esta identificando el «usuario») se encuentra en la lista de BOTS ($SEARCH_ENGINES_UA).

Si se encuentra entra en el IF y ejecuta, en este caso el siguiente codigo:

header(‘HTTP/1.1 302 Found’);
header(«Location: http://www.internetox.com/»);
exit();

Que no es ni mas ni menos que una redireccion a http://www.internetox.com (aqui debes poner la url que deseas), con una cabecera 302 (una redireccion temporal).

Dentro de este bloque, osea, dentro de las llaves ({}) puedes ingresar lo que quieras, por ejemplo puedes habilitar un contador para ver cuantas veces entran los distintos bots a tu sitio o enviarte un mail cada vez que lo hacen.

Espero que les sea de utilidad, muchas gracias.