Detectar iPad con PHP o Javascript

Si hace unos días escribía un artículo sobre como redireccionar una web en función del dispositivo móvil, ya sea iPad, iPhone o cualquier otro smartphone, hoy explicaré más en concreto como saber si se está visitando una web desde un iPad.

Detectar iPad mediante PHP

Detectar si es un iPad es muy sencillo, no es más complicado que saber si está desde un pc, mac o lo que sea. Para ello usaremos la variable de servidor USER_AGENT, $_SERVER[‘HTTP_USER_AGENT’] que es lo que el navegador envía al servidor para identificarse. En esta variable de servidor contiene bastante información acerca del usuario, como por ejemplo el sistema operativo que está usando y su versión, el motor de navegador y su versión, y otros datos de idioma y geoposicionamiento básico, etc.

En mi caso la información que está enviando es la siguiente (desde mi navegador de mi pc con Linux):

[HTTP_USER_AGENT] => Mozilla/5.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1

En el caso de que estemos visitando nuestra web desde un iPad será algo similar a lo siguiente:


Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; es) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10

Con toda esta información ya podemos realizar una simple expresión regular y comprobar si el usuario está navegando desde un iPad. En PHP se haría de la siguiente manera:

function detectar_iPad() {
return (bool) strpos($_SERVER['HTTP_USER_AGENT'],'iPad');
}

Si devuelve true es que es un iPad.

Detectar iPad mediante Javascript


function isIPad(){

    if(navigator.userAgent.match(/iPad/i) != null){
        return true;
    }else{ return false;}
}

Detectar iPad mediante Apache, directiva en .htaccess

Y la forma de hacer esto a nivel global es metiendo una directiva de Apache, de esta manera no lo tendremos que hacer ni con php ni con Javascript.

RewriteCond %{HTTP_USER_AGENT} ^.*iPad.*$
RewriteRule ^(.*)$ http://ipad.dominio.com [R=301]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *