Between: Función PHP para extraer texto de documentos html

Hace varios años utilizo esta función para extraer textos o contenidos automaticamente de un documento html o similares.


function between($beg, $end, $str) {
$a = explode($beg, $str, 2);
$b = explode($end, $a[1]);
return $beg . $b[0] . $end;
}

El modo de uso es sencillo, teniendo la función incluida en el archivo PHP, la usamos de la siguiente manera:

$url = file_get_contents("http://www.google.com/");
$extract_string = between('<span id="perfil">', '</span>', $url);

Donde $url es la variable que trae el html (bien podría ser un texto plano o un archivo txt, cualquier texto al que necesites extraerle una porción definida). Y $extract_string es la llamada a nuestra función Between, donde como parametros indicamos el string a buscar como inicio, el string final y la variable a la que debe aplicar la acción.

Cabe aclarar que esta función trae el texto que se encuentra entre esos dos parametros, junto con los parametros, es decir que si estamos buscando un texto que esta entre <strong> y </strong> el resultado será: <strong>El texto que esta dentro</strong>.

Si necesitas que el texto no tenga esos dos parametros incluidos puedes reemplazarlo con la función de PHP eregi_replace, o cambiar en la función between la línea:
return $beg . $b[0] . $end;

Por:
return $b[0];

Verificar mayoría de edad en PHP

Hace unos días estuve trabajando en un proyecto donde uno de los requisitos era que el visitante fuera mayor de edad.

Inicialmente, y como de costumbre, busqué algún método sencillo que me indicara esta información proporcionando el día de nacimiento.

Lamentablemente no encontré nada que me funcionara bien, quizá no supe buscar, pero fue asi.

Entonces lo que hice fue sentarme unos minutos y modificar uno que vi en varios lugares, es una función bastante sencilla que puede ser de suma utilidad para sacarse el trabajo de encima.

function edad($edad){
list($anio,$mes,$dia) = explode("/",$edad);
$anio_dif = date("Y") - $anio;
$mes_dif = date("m") - $mes;
$dia_dif = date("d") - $dia;
if ($dia_dif < 0 || $mes_dif < 0) { $anio_dif--; } return $anio_dif; }

Para llamarla basta con ingresar la fecha de nacimiento a la funcion:

edad('1993/01/29');

Si la fecha la estamos pasando en otro formato, por ejemplo con guiones "-", solo resta modificar el explode() con este caracter. Por otro lado, si el orden de la información es distinto (ahora es AAAA/MM/DD), podemos modificarlo cambiando los nombres o el orden en el list().

Se que no es una joya del desarrollo, solo quise compartirlo porque fue algo de mucha utilidad.

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/

SQLiteManager, el PhpMyAdmin de SQLite

SQLiteManager, gestor de bases de datos SQLite

SQLiteManager es un gestor de SQLite que nos permitirá administrar de forma muy cómoda nuestras tablas y bases de datos, además de ingresar datos o modificar las características de la estructura de los distintos campos asi como ejecutar consultas.

SQLiteManager, gestor de  bases de datos SQLite

Esta creada en PHP y cuenta con soporte para varios idiomas y diseños, además hay que destacar que la forma de trabajo es muy similar a PhpMyAdmin, con lo cual los usuarios de esta herramienta no tendrán mayores complicaciones a la hora de adaptarse.

Esta herramienta es open source y podemos descargarla e instalarla en nuestro servidor desde http://www.sqlitemanager.org/

Reconocimiento Facial en PHP sin OpenCV

Clase PHP para reconocer caras

El reconocimiento facial es una moda bastante utilizada actualmente en redes sociales de todo tipo. Basicamente consiste en tomar una imagen y detectar los rostros que se encuentran dentro, de esta manera podemos realizar etiquetados de gente o inclusive recortar la imagen para usarla como imagen de perfil.

Clase PHP para reconocer caras

En Internet hay cientos de artículos dedicados a realizar el reconocimiento facial o reconocimiento de rostros con PHP, pero la mayoría utiliza la librería OpenCV.

En este caso, vía twitter nos hemos encontrado con un script PHP capaz de realizar esta acción sin la necesidad de utilizar la librería OpenCV.

El código de la clase php para reconocer rostros en imágenes se encuentra en: Face detection in pure PHP (without OpenCV) [Ingles]

Y para ejecutarlo lo podemos hacer de la siguiente manera:
$detector = new Face_Detector('detection.dat');
$detector->face_detect('maurice_svay_150.jpg');
$detector->toJpeg();

Finalmente debemos tener en cuenta que necesitaremos el archivo: http://svay.com/experiences/face-detection/detection.dat

Vía | @ecuageek

Script PHP para saber cantidad de Retweets de una página

Sin duda, Twitter ha pasado a ser parte de la vida de muchisimos internautas y es por esto que los ReTweets se han convertido en un elemento esencial a la hora de medir la popularidad de un artículo o página.

Para nuestros fieles lectores hemos encontrado un script PHP que nos ayudará a tener un conteo constante de los retweets realizados sobre cualquier elemento de la web. Este código php es bien básico, se encuentra basado en la API de Tweetmeme y resultará ser de fácil implementación.

La función que utilizaremos es la siguiente:

function tweetCount($url) {
$content = file_get_contents("http://api.tweetmeme.com/url_info?url=".$url);
$element = new SimpleXmlElement($content);
$retweets = $element->story->url_count;
if($retweets){
return $retweets;
} else {
return 0;
}
}

Para obtener el resultado final, luego de colocar la función deberemos hacer la llamada a la misma:


echo tweetCount('http://vitaminageek.com/');

Y listo! Ya tenemos la cantidad de Retweets que se han realizado!

Lo leí en: http://www.phpsnippets.info/get-how-many-times-a-page-have-been-retweeted-using-php

Escanea tu sitio PHP en busca de errores

Hace unos días les contabamos sobre el Antivirus PHP que podiamos utilizar para detectar código malisioso dentro de nuestros sitios. Siguiendo por el camino de las clases útiles para mejorar el funcionamiento y la seguridad de nuestros proyectos, les traemos PHP Scanner.

PHP Scanner es una clase que recorre el sitio que le indiquemos en busca de errores PHP, links rotos e imágenes erroneas. Una vez finalizado el escaneo nos presenta un informe completo indicando cual fue el resultado del analisis.

Ideal para utilizar como apoyo antes de entregar un proyecto a nuestros clientes, o también para ayudar y agilizar las tareas del equipo de QA.

El único problema que encuentro es que sólo escanea archivos con extensión (por ejemplo: .php, .html, etc), entonces si tenemos sitios utilizando Rewrite rules para presentar los contenidos como directorios (sin extensión), no vamos a poder chequearlo.

Para descargar la clase pueden hacerlo a través de: http://www.mikestowe.com/wp-content/uploads/2010/09/php-scanner-2010-09-22.zip

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();
?>