Tip: Cómo detectar con PHP si te visita un iPhone


Estoy trabajando un poco en sitios que “pueden ser visitados desde el iPhone” [así lo solicitó el cliente], el tema es que existen algunas funciones javascript para detectar que si usas jQuery te “bloquea” los efectos.

La solución es muy sencilla, aplicar el script en PHP como a continuación:
PHP<5.3.0

[sourcecode=”php”]
if (ereg(‘iPhone’,$_SERVER[‘HTTP_USER_AGENT’]))
{
header(“Location:/iphone.html”);
}
[/sourcecode]

PHP>=5.3.0
[sourcecode=”php”]
if (preg_match(“/iPhone/”,$_SERVER[‘HTTP_USER_AGENT’]))
{
header(“Location:iPhone.php”);
}
[/sourcecode]

OJO: Es IMPORTANTE que si tiene PHP mayor o igual a 5.3.0 usen preg_match en lugar de ereg, por que ereg está OBSOLETO en PHP 5.3.0 y será eliminado en PHP 6.0.0

La función es muy sencilla ya que detecta si en la cadena del Agente del usuario [HTTP_USER_AGENT] incluye la palabra iPhone. Evidentemente esto es fácilmente manipulable por ejemplo en Firefox cambiando el User Agent en about:config colocando:

Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1_2 like Mac OS X; es-es) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7D11 Safari/528.16

Deben reiniciar firefox una vez realicen esto

[Con el userAgent cambiado hasta mi blog lo cargó en modo iPhone]

[recuerda colocar de vuelta la configuración después de jugar (Firefox/x.x.x) [x.x.x = tu versión…] 😛 ]

Para que vean el ejemplo pueden navegar al ejemplo acá [agréguenle una x al .php para que vean el código fuente]..

y acá la captura desde el iPhone:

Saludos, y espeor haya sido de su utilidad este tip [Pronto espero presentarlo en ASP.net]


Una respuesta a “Tip: Cómo detectar con PHP si te visita un iPhone”

Agregar un comentario

Su dirección de correo no se hará público.

This site uses Akismet to reduce spam. Learn how your comment data is processed.


Notice: ob_end_flush(): failed to send buffer of zlib output compression (0) in /home2/bredecl/public_html/wp-includes/functions.php on line 5212