Es ist ziemlich schwierig, da es so viele verschiedene Suchmaschinen gibt. Ich denke, das kann nicht in einem einzigen Liner gemacht werden. Wenn PHP in Ordnung ist, empfehle ich die Verwendung von php_browscap.ini (verfügbar für verschiedene Sprachen). Dies kann zum Beispiel mit P HPs get_browser()-function verwendet werden.
Dann können Sie gegen alle anderen Browser-Sachen und natürlich Bots überprüfen.
In meinem eigenen Code-Schnipsel verwende ich die folgende Funktion (auf der Grundlage der genannten browscap) die entsprechenden Angaben einfach in meinem Code zu bekommen:
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);
}
Beispiele:
/*
// 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>';
Sie können auch diese http://www.useragentstring.com/pages/Crawlerlist/ verwenden – Rahly