Как написать простую функцию?

Рейтинг: 0Ответов: 1Опубликовано: 25.02.2015
function mobile(){
    $mobiles = array("iPhone","iPod","Android");
    foreach( $mobiles as $mobile ) {

    }
}

Как теперь с помощью $_SERVER['HTTP_USER_AGENT'] проверить: есть mobile - cделать одно, а если не mobile - то другое?

Ответы

▲ 3Принят

Вам поможет preg_match.
Вот само условие:

if(preg_match('/iPhone|iPad|Android/i', $_SERVER['HTTP_USER_AGENT']))
{
    //Выполняем что-то важное
}

Получить паттерн из массива можно так:

$pattern = '/' . implode('|', $mobiles) . '/i';

Тогда, соответственно, его нужно будет вставить вместо '/iPhone|iPad|Android/i'.

Что получится в итоге:

function mobile(...){
    ...
    $mobiles = array("iPhone","iPod","Android"); //если массив не будет меняться извне, можно сразу записать паттерн как '/iPhone|iPad|Android/i'
    $pattern = '/' . implode('|', $mobiles) . '/i'; //иначе строим паттерн из массива

    if(preg_match($pattern, $_SERVER['HTTP_USER_AGENT']))
    {
        //Выполняем что-то важное
    }
}

Обновление Минимальная по коду функция, удовлетворяющая Вашим требованиям:

function isMobile()
{
    return preg_match('/iPhone|iPad|Android/i', $_SERVER['HTTP_USER_AGENT']);
}

Применение

if(!isMobile()) //если не мобильник
{
    //показываем 
}