C'est assez compliqué car il y a tellement de moteurs de recherche différents. Je suppose que cela ne peut pas être fait dans un seul paquebot. Si PHP est correct, je suggère d'utiliser php_browscap.ini (disponible pour différentes langues). Cela peut être utilisé avec P HPs get_browser()-function, par exemple.
Ensuite, vous pouvez vérifier tous les différents aspects du navigateur et bien sûr Bots.
Dans mes propres extraits de code utiliser la fonction suivante (sur la base browscap mentionné) pour obtenir les infos appropriés facilement dans mon code:
function _browser($a_browser = false, $a_version = false, $name = false)
{
$browser_list = 'msie firefox konqueror safari netscape navigator opera mosaic lynx amaya omniweb chrome avant camino flock seamonkey aol mozilla gecko';
$user_browser = strtolower($_SERVER['HTTP_USER_AGENT']);
$this_version = $this_browser = '';
$browser_limit = strlen($user_browser);
foreach ($this->_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
);
}
function _w($a = '')
{
if (empty($a)) return array();
return explode(' ', $a);
}
Exemples:
/*
// Examples
echo '<pre>';
print_r(_browser()); // return array of browser data
var_dump(_browser('firefox')); // return true if using firefox
var_dump(_browser('msie', '>= 7.0')); // return true if using IE 7.0 or above else false
var_dump(_browser('firefox', '< 3.0.5')); // return true if using below firefox 3.0.5 (can check minor version)
var_dump(_browser(false, false, true)); // return string of name of browser and version
// To check if Gecko browser is used
var_dump(_browser('gecko'));
// version_compared function is used so you can use the same operator syntax
var_dump(_browser('firefox', 'le 1.5'));
echo '</pre>';
Vous pouvez également utiliser ce http://www.useragentstring.com/pages/Crawlerlist/ – Rahly