Detectar dispositivos móviles en PHP

Subodh Poudel 30 enero 2023
  1. Utilice la clase mobiledetect para detectar dispositivos móviles en PHP
  2. Utilice HTTP_USER_AGENT y la función preg_match() para detectar dispositivos móviles en PHP
Detectar dispositivos móviles en PHP

Introduciremos algunos métodos para detectar dispositivos móviles en PHP.

Utilice la clase mobiledetect para detectar dispositivos móviles en PHP

Podemos usar una clase PHP liviana llamada Mobile Detect para detectar dispositivos móviles en PHP. También detecta tabletas. La biblioteca utiliza ciertos encabezados HTTP y cadenas de agentes de usuario para detectar dispositivos móviles. Podemos descargar la librería usando el compositor con el siguiente comando.

composer require mobiledetect/mobiledetectlib

La biblioteca proporciona varios métodos como isMobile(), isTablet(), isIOS() para detectar varios entornos móviles. Podemos crear un objeto de la clase Mobile_Detect() y usar estos métodos.

Por ejemplo, descargue la biblioteca en el directorio del proyecto usando el comando composer anterior. A continuación, solicite el archivo autoload.php usando la función require_once. El archivo se encuentra dentro del directorio vendor. A continuación, cree un objeto $detect de la clase Mobile_Detect(). Luego, use la función isMobile() en una condición if. Dentro del bloque if, muestre el mensaje Mobile device detected y muestre el mensaje Mobile device not detected en el bloque else.

El siguiente ejemplo detectará si se accede a la página web desde un dispositivo móvil. La sección de salida a continuación muestra el caso cuando la página web se abre desde una PC. Podemos encontrar el Modo de diseño receptivo yendo a Inspeccionar elemento con un clic derecho en la página web. Allí, podemos elegir diferentes dispositivos móviles y actualizar el script. Cuando elegimos un dispositivo móvil, la salida cambiará a Mobile device detected. De esta forma, podemos utilizar la clase Mobile Detect para detectar dispositivos móviles en PHP.

Código de ejemplo:

require_once "vendor/autoload.php";

$detect = new Mobile_Detect;

if ( $detect->isMobile() ) {
echo "Mobile device detected";
}
else {
echo "Mobile device not detected";
}
?>

Producción :

Mobile device not detected

Utilice HTTP_USER_AGENT y la función preg_match() para detectar dispositivos móviles en PHP

Podemos utilizar la cadena HTTP_USER_AGENT para obtener la información sobre el navegador del usuario para visitar el sitio web. Usaremos la variable superglobal $_SERVER y la cadena como un elemento de matriz. La variable superglobal contiene información sobre el servidor web. Crearemos una colección personalizada de cadenas de usuario-agente que se encuentran en dispositivos móviles. Luego, podemos verificar si coinciden con el navegador que el usuario actual está navegando usando la función preg_match(). La colección de cadenas de agente de usuario se puede agregar manualmente junto con el lanzamiento de nuevos dispositivos móviles compatibles. Se encuentra aquí una lista de una colección actualizada de cadenas de agentes de usuario.

Por ejemplo, cree una variable $user_agent y almacene $_SERVER["HTTP_USER_AGENT"] en ella. Luego use la función preg_match() para hacer coincidir la cadena de usuario-agente. Utilice la colección de cadenas como primer parámetro. Utilice la variable $user_agent como segundo parámetro. Por último, muestre el mensaje según corresponda utilizando la condición if-else.

Aquí, abrimos la página web desde un iPhone. Por lo tanto, la cadena de agente de usuario coincide con la colección. De esta forma, podemos detectar el dispositivo móvil en PHP.

Código de ejemplo:

$user_agent = $_SERVER["HTTP_USER_AGENT"];
if(preg_match("/(android|webos|avantgo|iphone|ipod|ipad|bolt|boost|cricket|docomo|fone|hiptop|opera mini|mini|kitkat|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i",$user_agent ))
{
echo "mobile device detected";
}
else{
echo "mobile device not detected";
}

Producción :

Mobile device detected
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn