Вывод информации в зависимости от мобильного браузера

Тема в разделе "PHP", создана пользователем Dima738, 9 апр 2014.

  1. Dima738

    Dima738

    Регистрация:
    9 янв 2014
    Сообщения:
    8
    Симпатии:
    4
    Доброго времени суток!
    Необходимо вывести блок с информацией, причем для каждого браузера свой (Safari, Windows 8).
     
  2. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    если по средствам php, то, парсить User Agent

    Если лень писать самому, то можно заюзать уже готовые класы, например: https://github.com/serbanghita/Mobile-Detect
     
    Dima738 нравится это.
  3. InDiGo

    InDiGo

    Регистрация:
    4 янв 2015
    Сообщения:
    0
    Симпатии:
    0
    даю функцию для проверки мобильный или нет браузер. Дальше можешь модифицировать её под себя

    function client() {
    $mobile_array = array('Android','webOS','BlackBerry','iPhone','iPod','Mobile','Symbian','Opera M','HTC_','Fennec/','WindowsPhone','WP7','WP8');

    foreach ($mobile_array as $os) {
    if(strpos($_SERVER['HTTP_USER_AGENT'], $os) == true) {
    return true;
    } }
    return false;
    }
     
  4. Vlad-i-Slav

    Vlad-i-Slav

    Регистрация:
    20 мар 2013
    Сообщения:
    286
    Симпатии:
    176
    $browsers = "mozilla msie gecko firefox ";
    $browsers.= "konqueror safari netscape navigator ";
    $browsers.= "opera mosaic lynx amaya omniweb maxthon theworld traveler chrome";
    $browsers = explode(" ", $browsers);
    $nua = strToLower( $_SERVER[\'HTTP_USER_AGENT\']);
    $l = strlen($nua);
    for ($i=0; $i<count($browsers); $i++){
    $browser = $browsers[$i];
    $n = stristr($nua, $browser);
    if(strlen($n)>0){
    $GLOBALS["ver"] = "";
    $GLOBALS["nav"] = $browser;
    $j=strpos($nua, $GLOBALS["nav"])+$n+strlen($GLOBALS["nav"])+1;
    for (; $j<=$l; $j++){
    $s = substr ($nua, $j, 1);
    if(is_numeric($GLOBALS["ver"].$s) )
    $GLOBALS["ver"] .= $s;
    else
    break;
    }
    }
    }
    if( $GLOBALS["nav"] == "firefox" && $GLOBALS["ver"] <= 15 ) {
    echo 'Старый фаерфокс младше 15 версии';
    }
    if( $GLOBALS["nav"] == "msie" && $GLOBALS["ver"] == 9 ) {
    echo 'Интернет эксплорер 9';
    }

    и так далее
     
  5. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    никогда не используйте этот код! наследие PHP4
     
  6. Робсон

    Робсон

    Регистрация:
    6 янв 2015
    Сообщения:
    1
    Симпатии:
    0
    а что лучше использовать тогда?
     
  7. VictorAS

    VictorAS

    Регистрация:
    2 ноя 2014
    Сообщения:
    8
    Симпатии:
    1
    Лучше использовать код, в котором не используются $GLOBALS. В целом, вышеуказанный код несложно "причесать". А вообще - простейшая функция определения браузера и столько кода... а можно одной строкой кода обойтись, правда длинной :Smile: