Подключаем API яндекса для определения мобилы

Печать RSS
364

Автор
Господин ПЖ
0
В файле includes/header.php подключаем код

<?
// ------------------------ Автоопределение системы -----------------------------//
if (!empty($config['webthemes']) && empty($_SESSION['my_themes'])) {
	if (empty($_SESSION['log']) || empty($_SESSION['par'])) {

		$headers = array();
		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'=> implode($headers),
			)
		);

		$device = trim(file_get_contents("http://phd.yandex.net/detect", false, stream_context_create($opts)));

		if ($device=='<yandex-mobile-info-error>Unknown user agent and wap profile</yandex-mobile-info-error>') {
			$config['themes'] = $config['webthemes'];
		}
	} 
} 

Определение мобильный браузер или обычные берет на себя яндекс, api коненчо там не очень удобное, но все же, если не может определить браузер, то включается web тема
Изменил: Вантуз-мен (20.08.2011 / 13:55)
С

Малиновые штаны
0
Лучше в боевом проекте не юзать, Яндекс не любит нагрузку на свои сервисы и может заблочить IP... (хотя может на апи и нет ограничений, хотя когда я парсил поиск, то после 20 запросов блокируют).
Но после вчерашнего сбоя на 3 часа что положил все сервисы Яндекса, ему такие вещи доверять нельзя точно.
Изменил: Саня (20.08.2011 / 14:08)

Голубые штаны
0
Пробовал подключать геолокацию по IP в файл includes/header.php - капитально тормозило генерацию страниц. Пришлось отказаться от этой фенечки.
Яндекс не будет разве тормозить работу скрипта? Ведь перед генерацией страницы будут выполняться дополнительные действия - отправка запроса на удаленный сервер, получение ответа и обработка его.
Автор
Господин ПЖ
0
ну по идее там один раз при входе на сайта запросит и данные запишутся в сессию, ну а так да, я согласен, API сторонних сайтов лучше всего по-минимому использовать

Ктулху
0
не забывайте ставить минимальный таймаут. и да, во время ддоса будет ппц...

Дух
0
не нужно
В

Чатланин
0
Зачем это надо вообще? Нормальные офлайн функции есть
http://wapdisk.ru/86

Оранжевые штаны
0
Яндекс не только по юзер-агенту определяет
Автор
Господин ПЖ
0
7. valerik, это уже давно устаревшая функция, она не определит если чел зашел с андроида или айфона

2000 лет д.н.э.
0
9. Vantuz, а яндекс определит андроид если тот не через дефолтный уа? крайне сомнительно, а с дефолтным и своими силами без проблем определить
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск