Назад

Как определить мобильное устройство на PHP и показывать контент только для мобильных

Главная
Блог
Как определить мобильное устройство на PHP и показывать контент только для мобильных

В современном мобильно-ориентированном мире адаптация контента под разные устройства критически важна. По данным StatCounter, в 2024 году более 58% интернет-трафика приходится на мобильные устройства. Это значит, что:

  1. UX-оптимизация - пользователи ожидают корректного отображения на смартфонах

  2. SEO-фактор - Google ранжирует mobile-friendly сайты выше

  3. Конверсии - адаптированный контент повышает вовлеченность

В этой статье разберем два рабочих метода:
Серверный - определение устройства через PHP (точнее, но требует перезагрузки)
Клиентский - медиазапросы CSS (быстрее, но менее надежно)

Как определить мобильное устройство с помощью PHP

Проверка мобильного устройства по User-Agent

function is_mobile_device() { 
    $mobile_agents = [
        'ipad', 'iphone', 'android', 'pocket', 'palm', 'windows ce', 'windowsce', 
        'cellphone', 'opera mobi', 'ipod', 'small', 'sharp', 'sonyericsson', 
        'symbian', 'opera mini', 'nokia', 'htc_', 'samsung', 'motorola', 
        'smartphone', 'blackberry', 'playstation portable', 'tablet browser'
    ];
    
    $user_agent = strtolower($_SERVER['HTTP_USER_AGENT'] ?? '');
    
    foreach ($mobile_agents as $agent) {
        if (strpos($user_agent, $agent) !== false) {
            return true;
        }
    }
    return false;
}

Использование функции

if (is_mobile_device()) {
    // Показываем контент только для мобильных устройств
    echo "Этот текст виден только на мобильных!";
}

Интеграция в Битрикс

1. Подключение в компоненте

Оптимально для отдельных страниц:

  1. Создайте файл /local/php_interface/include/mobile_detection.php с функцией

  2. В компоненте:

<?php
require_once($_SERVER['DOCUMENT_ROOT'].'/local/php_interface/include/mobile_detection.php');

if (is_mobile_device()) {
    // Мобильная версия
    $APPLICATION->IncludeComponent(
        'bitrix:mobile.section',
        // ... параметры компонента
    );
} else {
    // Десктопная версия
    $APPLICATION->IncludeComponent(
        'bitrix:catalog.section', 
        // ... параметры компонента
    );
}
?>

2. Глобальное подключение в init.php

Для использования на всем сайте:

  1. Добавьте в /local/php_interface/init.php:

<?
require_once($_SERVER['DOCUMENT_ROOT'].'/local/php_interface/include/mobile_detection.php');

// Вариант 1: Глобальная переменная
$GLOBALS['isMobileDevice'] = is_mobile_device();

// Вариант 2: Константа
define('IS_MOBILE_DEVICE', is_mobile_device());

  1. Использование в шаблоне:

<?if($GLOBALS['isMobileDevice']):?>
   <!-- Мобильный контент -->
<?else:?>
   <!-- Десктопный контент -->
<?endif?>

Рекомендации для Битрикс:

  • Кеширование: Оберните проверку в условие для работы с кешем

  • D7-стиль: Создайте класс в /local/lib/ для новых проектов

  • Альтернатива: Можно использовать CMain::IsMobileDevice(), но с ограничениями

Альтернативный способ: CSS медиазапросы

Для визуального скрытия элементов:

<div class="desktop-content">Видно только на ПК</div>
<div class="mobile-content">Видно только на мобильных</div>

<style>
    .mobile-content { display: none; }
    .desktop-content { display: block; }

    @media (max-width: 768px) {
        .mobile-content { display: block; }
        .desktop-content { display: none; }
    }
</style>

Плюсы и минусы методов

Метод Плюсы Минусы
PHP Точно определяет устройство Требует перезагрузки страницы
CSS Мгновенное переключение Контент загружается для всех устройств

Заключение

Для комплексного решения рекомендуем:

  1. Использовать PHP-проверку для серверной оптимизации контента

  2. Дополнять CSS-медиазапросами для визуальной адаптации

  3. В Битрикс - глобальную проверку в init.php для всего сайта

Оптимизация под мобильные устройства улучшает поведенческие факторы и повышает конверсию!

Нужен надежный исполнитель?
Разрабатываем сайты, выполняем миграцию на Битрикс, дорабатываем функционал, сопровождаем проекты, а также занимаемся поисковым продвижением и комплексным маркетингом
Получить консультацию
Читайте по теме
Все статьи
Нужен надежный исполнитель?
Разрабатываем сайты, выполняем миграцию на Битрикс, дорабатываем функционал, сопровождаем проекты, а также занимаемся поисковым продвижением и комплексным маркетингом
Получить консультацию
Все статьи