Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, encontrei algo interessante hoje enquanto tentava solucionar um problema em um site de um cliente, por se tratar de um problema com área de administração estou sendo forçado a bloquear algumas versões de browsers, devido a incompatibilidade de layouts principalmente, oque pode me trazer diversos problemas, mais retornando ao assunto, eu precisa capturar qual browser o cliente estava utilizando e assim ver se com a versão utilizada pelo mesmo pode acessar o painel! Quando fui utilizar a função get_browser encontrei a necessidade de configurar o php.ini para referenciar corretamente o arquivo browscap.ini, oque acaba dando um certo trabalho, foi ai que olhando os comentários sobre a função get_browser encontrei uma função que não faz uso do mesmo, link http://br2.php.net/manual/pt_BR/function.get-browser.php . Pra mim esta servindo até o momento vou testar mais um pouco ao decorrer do dia.
Fiz algumas modificações pequenas, basicamente na impressão das informações, dicas e correções são muito bem vindas.
<?php
function w($a = ''){
if (empty($a)) return array();
return explode(' ', $a);
}
function _browser($a_browser = false, $a_version = false, $name = false){
$browser_list = 'msie firefox chrome konqueror safari netscape navigator opera mosaic lynx amaya omniweb avant camino flock seamonkey aol mozilla gecko';
$user_browser = strtolower($_SERVER['HTTP_USER_AGENT']);
$this_version = $this_browser = '';
$browser_limit = strlen($user_browser);
foreach (w($browser_list) as $row){
$row = ($a_browser !== false) ? $a_browser : $row;
$n = stristr($user_browser, $row);
if (!$n || !empty($this_browser)) continue;
$this_browser = $row;
$j = strpos($user_browser, $row) + strlen($row) + 1;
for (; $j <= $browser_limit; $j++){
$s = trim(substr($user_browser, $j, 1));
$this_version .= $s;
if ($s === '') break;
}
}
if ($a_browser !== false){
$ret = false;
if (strtolower($a_browser) == $this_browser){
$ret = true;
if ($a_version !== false && !empty($this_version)){
$a_sign = explode(' ', $a_version);
if (version_compare($this_version, $a_sign[1], $a_sign[0]) === false){
$ret = false;
}
}
}
return $ret;
}
$this_platform = '';
if (strpos($user_browser, 'linux')){
$this_platform = 'linux';
}
elseif (strpos($user_browser, 'macintosh') || strpos($user_browser, 'mac platform x')){
$this_platform = 'mac';
}
else if (strpos($user_browser, 'windows') || strpos($user_browser, 'win32')){
$this_platform = 'windows';
}
if ($name !== false){
return $this_browser . ' ' . $this_version;
}
return array(
"browser" => $this_browser,
"version" => $this_version,
"platform" => $this_platform,
"useragent" => $user_browser
);
}
echo '<pre>';
$vBrowser = _browser();
if( _browser('chrome','>= 2.0') == 0 or
_browser('firefox') == 1 or
_browser('msie', '>= 7.0') == 1 or
_browser('firefox', '< 3.0.5') == 1
){
echo "Browser Suportado!";
} else {
echo "Browser Não Suportado! \n";
echo "Browser : ".$vBrowser['browser']."\n";
echo "Versão : ".$vBrowser['version']."\n";
echo "S.O. : ".$vBrowser['platform']."\n";
echo "Detalhes : ".$vBrowser['useragent'];
}
echo '</pre>';
?>
=)Carregando comentários...