Очень часто при изготовлении сайта встаёт необходимость в создании облегченной версии (PDA) для телефонов, планшетов и смартфонов.
Чтобы определить, какую версию сайта показывать пользователю для его устройства и реализовать загрузку той версии мобильного приложения, которая больше всего подходит советую использовать API Яндекс.Детектор.
API Яндекс.Детектор предоставляет возможность определения модели и характеристик мобильного устройства пользователя сайта по заголовкам HTTP-запросов, передаваемых браузером его устройства.
Пишем простенькую функцию для определения мобильных браузеров, основанную на примере от Яндекса.
<?php
function mobileDetect() {
$headers = '';
foreach ($_SERVER as $key => $value) {
if (strpos($key, 'HTTP_') === 0 && $key != 'HTTP_HOST' && $key != 'HTTP_CONNECTION') {
$key = strtolower(strtr(substr($key, 5), '_', '-'));
$headers .= $key . ': ' . $value . "\r\n";
}
}
$opts = array(
'http' => array(
'method' => "GET",
'header' => $headers,
'timeout' => 6
)
);
$response = file_get_contents('http://phd.yandex.net/detect', false, stream_context_create($opts));
if (preg_match('|<yandex-mobile-info-error>|si', $response)) {
return false;
}
return true;
}
?>
Теперь создаём поддомен на вашем основном домене. Например, если у меня был домен www.peacekeeper.ru, то я создал поддомен pda.peacekeeper.ru (можно и m.peacekeeper.ru).
Использовать нашу функцию будем примерно так: если человек зашел на сайт с мобильного телефона - редиректим его на ту же самую страницу, которую он запросил, только на поддомене pda.peacekeeper.ru.
<?php
// Редирект на PDA-версию
if (mobileDetect()) {
header('Location: http://pda.'.trim($_SERVER['SERVER_NAME'], 'www.').$_SERVER['REQUEST_URI']);
}
?>
Пример можно посмотреть здесь (заходить, естественно, через мобилку). Продолжение следует ヅ
Ссылки
Похожие публикации:
- Установка standalone версии Akismet для сайта
Akismet — веб-сервис от создателей WordPress, анализирующий качество содержимого, отправляемого на веб-сайты. Сюда включаются: комментарии, сообщения, отправляемые через контакт-формы, блоги,... - Создание счетчика «онлайн на сайте»
Для реализации счетчика, который бы показывал, сколько человек в данный момент на сайте, можно использовать любой из бесплатных сервисов статистики.... - Зависимость дизайна сайта от времени года
Чтобы ваш сайт не смотрелся скучным, можно постоянно менять ему дизаин. Если этот процесс автоматизировать, чем мы сейчас и займёмся,... - Валидный тег NOINDEX для Яндекс
Тег noindex — не входит в официальную спецификацию языка гипертекстовой разметки веб-страниц HTML. Он предназначенного для включения в него частей... - FireBug для вашего сайта
Firebug — расширение для браузера Firefox, являющееся консолью, отладчиком, и DOM-инспектором JavaScript, DHTML, CSS, XMLHttpRequest. Firebug показывает в консоли вызвавшую...

Это тупо, потому что каждый рахз при загрузке страницы происходит отправка запроса ещё и на сервер яндекса. Надо покапаться в $headers, которые создаёт эта функция, в них кроется ответ.
Что вы имели ввиду под словом «покопаться», ведь эту функцию вы сами пишите
И заголовки сами создаете.