Futurizate.com: Diseño Web, Hosting, Dominios, Buscadores

Entradas con la etiqueta ‘PHP’

Detectar dispositivos móviles en PHP

Martes, 15 de Septiembre de 2009

En un mundo en el que los dispositivos móviles ganan terreno a un ritmo asombroso, aquí tenemos un código con el que podremos detectar fácilmente, desde PHP, si nuestra web se está ejecutando desde unos de estos dispositivos. Una vez detectado, podremos realizar una acción específica, mostrar un aviso, redireccionar a otra página o lo que nos interese.

<?php

   // Función para detectar dispósitivos móviles
   function siEsDispositivoMovil(){

      $useragent = $_SERVER['HTTP_USER_AGENT'];

      //Listado de user-agent(UA) de dispositivos móviles
      $useragents = array(
         'PIE4' => 'compatible; MSIE 4.01; Windows CE; PPC; 240x320',
         'PIE4_Smartphone' => 'compatible; MSIE 4.01; Windows CE; Smartphone;',
         'PIE6' => 'compatible; MSIE 6.0; Windows CE;',
         'Minimo' => 'Minimo',
         'OperaMini' => 'Opera Mini',
         'AvantGo' => 'AvantGo',
         'Plucker' => 'Plucker',
         'NetFront' => 'NetFront',
         'SonyEricsson' => 'SonyEricsson',
         'Nokia' => 'Nokia',
         'Motorola' => 'mot-',
         'BlackBerry' => 'BlackBerry',
         'WindowsMobile' => 'Windows CE',
         'PPC' => 'PPC',
         'PDA' => 'PDA',
         'Smartphone' => 'Smartphone',
         'Palm' => 'Palm'
      );

      foreach($useragents as $nav=>$ua){
         if(strstr($useragent, $ua)!=false){
            return $nav;
         }
      }

      return "NoMovil";
   }

   $navegadorMovil = siEsDispositivoMovil();

   if ( $navegadorMovil != "NoMovil" ) {
      echo "La web se ha cargado desde un dispositivo no móvil.";
   } else {
      echo "La web se ha cargado desde el dispositivo móvil: " . $navegadorMovil;
   }
?>

HTTP 301 Redirect en PHP

Jueves, 10 de Septiembre de 2009

Desde hace bastante tiempo, cuando necesitábamos que una URL se redireccionara hacia otra automáticamente utilizábamos el típico Javascript:

<script type="text/javascript">
   document.location = "http://www.nuetroejemplo.com/nuevodirectorio";
</script>

o si lo queríamos mejorarlo, ya que si tienes el javascript desactivado no se redireccionaría a la nueva dirección, utilizábamos el Tag Meta Refresh:

<META HTTP-EQUIV=Refresh CONTENT='0; URL=http://www.nuetroejemplo.com/nuevodirectorio'>

Si nuestro servidor únicamente permite ejecutar páginas HTML esta es sin duda la mejor opción. En cambio si disponemos de un servidor que tenga PHP, la mejor opción es la siguiente:

<?php
   // Permanent redirection
   header("HTTP/1.1 301 Moved Permanently");
   header("Location: http://www.nuetroejemplo.com/nuevodirectorio");
   exit();
?>

además de forzar la redirección desde servidor, el cliente no interviene, solventamos posibles problemas a la hora del posicionamiento web (SEO) con URLs diferentes que muestran el mismo contenido. Normalmente los buscadores penalizan que distintas URLs se redirijan al mismo contenido.

Forzar descargas de ficheros con PHP

Miércoles, 26 de Agosto de 2009

Con este sencillo código, el nombre del fichero que le hayamos pasado como parámetro se descargará automáticamente en lugar de intentar abrirse como sería normal. Nosotros lo hemos utilizado en algún cliente para forzar que se descarguen un fichero PDF y así detectar que para verlo se lo ha de descargar. Cada cliente tiene sus particularidades pero aquí tenéis esta opción por si os hace falta.

<?php

   $sUrlDescargas = "archivos/"; //Introducir directorio de descargas
   $sDocumento = $sUrlDescargas.$_GET["archivo"];

   header("Content-type: application/force-download");
   header("Content-Disposition: filename=".basename($_GET["archivo"]));
   header("Content-Transfer-Encoding: binary");

   if (!@readfile($sDocumento))
   echo "Ha sido imposible descargar el fichero";

?>

Enlace: http://www.martiniglesias.eu/blog/forzar-descargas-con-php/3