Extraer URLs de imágenes de una web

¿Nunca habeis necesitado extraer todas las URLs de las imágenes de una web? Pues con este script mostraremos por pantalla las rutas de todas las imágenes contenidas en la página $url

$url = "http://www.elmejorcoche.com";

$html = file_get_contents($url);

preg_match_all("/<img[\s]+[^>]*?src[\s]?=[\s\"\']+(.*\.([gif|jpg|png|bmp|jpeg|tiff]{3,4}))[\"\']+.*?>/", $html, $images);

$images = $images[1];
$list = array();

foreach($images as $img) {
	echo $img."<br>";
}

Si tu versión de PHP es inferior a 4.3.0 (en primer lugar te recomiendo pasar a PHP5) puedes usar la siguiente función en lugar de file_get_contents:

function getHtml($url) {
    $foo = @fopen($url,"r");
    if($foo){
        while(!feof($foo)){
            $html.=fgets($foo);
        }
    }
    return $html;
}

Como crear y modificar un campo autoincremental en Oracle

Muchas veces nos encontramos con la necesidad de crear un campo autoincremental en una tabla de nuestra base de datos. Típicamente suele usarse para generar una clave primaria para dicha tabla. Pues bien, la primera vez que nos enfrentamos con esta situación trabajando con Oracle, nos encontraremos con un grave problema que nos puede hacer perder mucho tiempo, puesto que, aunque parezca mentira, no existe ningún tipo de campo autoincremental en Oracle.

La solución es bastante sencilla (aunque no por ello deja de ser incómodo no disponer de un campo de este tipo directamente). Oracle dispone de un tipo de objeto denominado secuencia (SEQUENCE). Una secuencia tiene un valor inicial, un valor máximo y un valor de secuencia que incrementará cada vez que hagamos una llamada a la secuencia. Continue reading

Mi primer proyecto con Symfony 1.2.7 (parte II)

Symfony LogoEsta artículo es la segunda parte de mis primeros pasos con Symfony, puedes ver la primer parte de como crear un proyecto con Symfony, donde se describe paso a paso como diseñar y generar el proyecto, crear las aplicaciones y los módulos y conectar nuestro proyecto con la base de datos.

En esta segunda parte, vamos a dar forma a la parte pública y privada,  hacer uso del scaffolding para generar las acciones comunes CRUD (Create, Read, Update, Delete) o como tunear las URLs para conseguir un mejor posicionamiento. Continue reading

Mi primer proyecto con Symfony 1.2.7 (parte I)

Symfony LogoDespués de ver que es Symfony e instalar Symfony en nuestra máquina, voy a poner los pasos que he seguido, y los problemas que me he encontrado (junto con su resolución) para crear mi primer proyecto con Symfony.

Antes de ponernos manos a la obra, es imporatante entender como estructura Symfony el código. Todo proyecto creado por Symfony consta de una serie de carpetas y archivos que contienen el código base del framework. El árbol de carpetas de un proyecto es:

Árbol de directorios Symfony

A su vez, los proyectos están divididos en aplicaciones y módulos, los cuales, suelen coincidir con las tablas de nuestra base de datos. En este primer proyecto, haremos un blog muy simple y le pondremos el nombre blog (para ser original), a su vez, estará formado por dos aplicaciones, el frontend (o la parte visible para los usuarios comunes) y el backend (el panel de administración). Por último, cada una de las aplicaciones tendrá dos modulos: post y comment:

Estructura proyecto Symfony

Estructura proyecto Symfony


Continue reading

Diferencias entre PHP4 y PHP5

PHP4 to PHP5A pesar de que hace varios años que PHP5 vio la luz y de que su uso es ya super común, nunca me había parado a mirar con detenimiento cuales son las principales diferencias entre PHP4 y PHP5.

Después de dar un paseo por la fantástica documentación de PHP, dejan bastante claro que se centraron principalmente en conseguir un soporte decente para la Programación Orientada a Objetos y mejorar significativamente el rendimiento y las capacidades de PHP intentando conseguir la máxima compatibilidad con su versión 4, lo qual ha sido un detalle ya que facilita enormemente la migración. Continue reading

Instalar Symfony

Symfony LogoEl otro día os comentaba que és Symfony. Hoy os voy a explicar como instalarlo paso a paso de cuatro modos distintos, mediante PEAR, de los repositorios oficiales de Ubuntu/Debian, desde los repositorios Subversion y descargandonos el archivo de la web.

Cualquiera de las opciones que aquí os expondré són igualmente válidas para acondicionar nuestra máquina y usar Symfony, sin embargo, recomiendo instalarlo mediante PEAR o de los repositorios de Ubuntu/Debian para facilitar la actualización posterior.

Continue reading

PHPUnit – Tests Unitarios en PHP

PHPUnit LogoEl otro día os hablaba de la importancia de usar test unitarios. Hoy os dejo un pequeño documento sobre PHPUnit, un framework para PHP que nos permite crear y ejecutar juegos de tests unitarios de manera sencilla, además de analizar por nosotros los resultados de los mismos.

Aunque inicialmente PHP empezó como complemento dinámico para pequeñas páginas web, actualmente PHP se utiliza para desarrollar aplicaciones web complejas, por lo que es importante poder realizar las pruebas pertinentes a nuestro código. Continue reading

Unit Test: La importancia de usar tests unitarios

Bug Un test unitario (Unit Test) es un trozo de código desarrollado con el único objetivo de verificar que una rutina o función de nuestro código está funcionando según esperamos.

En definitiva, lo que Unit Test pretende es tener trozos de código que se encargarán de testear por separado y de forma independiente cada uno de los métodos de las distintas clases que compongan el programa desarrollado, para que cuando se haga alguna modificación en el código, posibles errores derivados de esa modifiación puedan ser identificados y corregidos de manera rápida y eficaz.

La idea general que se destila de los tests unitarios es que si todas las partes de un código funcionan por separado, lo más probable es que el global que componen también funcione. Obviamente, siempre será necesario realizar un testeo general (o pruebas de integración) de la aplicación para comprobar que el todo que hemos compuesto funciona correctamente.
Continue reading

Enmascarar mails para evitar SPAM

Aquí os dejo una forma sencilla de enmascarar un mail en una web de manera que, por pantalla mostrará el texto, sin embargo, si miramos el código fuente (o lo que es lo mismo, un bot visita nuestra web en busca de direcciones de correo electrónico) no encontraremos este texto.

El “truco” está en transformar cada uno de los caracteres a unicode utilizando esta función que me he entretenido en programar: Continue reading