Pasar segundos a horas:minutos:segundos

Una sencilla función que dado un número de segundos, nos devuelve el tiempo en formato hh:mm:ss


protected function makeTimeFromSeconds( $total_seconds )
{
    $horas              = floor ( $total_seconds / 3600 );
    $minutes            = ( ( $total_seconds / 60 ) % 60 );
    $seconds            = ( $total_seconds % 60 );

    $time['horas']      = str_pad( $horas, 2, "0", STR_PAD_LEFT );
    $time['minutes']    = str_pad( $minutes, 2, "0", STR_PAD_LEFT );
    $time['seconds']    = str_pad( $seconds, 2, "0", STR_PAD_LEFT );

    $time               = implode( ':', $time );

    return $time;
}

Espero os sea de utilidad.

Manipular archivos Excel con PHP

excel_2007¿Es posible tratar archivos xsl con PHP? pues un alma caritativa se ha currado una librería llamada PHP-ExcelReader basada en otra librería Java que nos permite tratar archivos de Excel con PHP de manera sencilla.

Aquí os dejo un ejemplo bastante simple que abre un archivo .xsl y pinta por pantalla todas las pestañas y su información en una tabla, muy simple, pero seguro que os da las bases para poder hacer lo que necesiteis. Continue reading

Reducir fotos desde línea de comandos

Aquí os dejo un script tan simple como útil que reduce todas las imágenes de una carpeta a un tamaño dado. Esto nos podría ser útil, por ejemplo, porque queremos subir 200 fotos a una web, pero como tienen mucha resolución pesan aproximadamente 2MB cada una, pues con este script podemos reducir su tamaño y conseguir que su peso se reduzca de manera considerable.

Para ello, tendremos que tener instalados en nuestra máquina los paquetes imagemagick y graphicsmagick-imagemagick-compat, en Ubuntu:

sudo apt-get install imagemagick
sudo apt-get install graphicsmagick-imagemagick-compat Continue reading 

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;
}

Extraer lineas de un archivo

No se si os habreis encontrado nunca con la necesidad de extraer una pequeña parte de un fichero de uno de tamaño descomunal, pero en el día a día en mi trabajo suele pasarme, por ejemplo a la hora de extraer un xml de un log.

El caso está en que los editores gráficos se cuelgan al manejar tamaños de cientos de megas, y hacer según que tipo de cosas es incómodo con editores en modo consola como el vi. Continue reading

Conexión SSH sin password

Open SSH Logo¿Os habeis encontrado alguna vez programando un script que se ejecutará desde el cron y que tiene que hacer un scp a otra máquina? Yo si, y me surgía el problema de que cron no escribe el password, por lo tanto ahí acababa el correcto funcionamiento del script.

Para casos de este estilo, una posible solución es hacer que el servidor ssh tenga añadido nuestra máquina como host de confianza mediante el algoritmo de clave pública y clave privada DSA (Digital Signature Algorithm). Continue reading