- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
function brows($str)
{
if(strpos($str,'Googlebot')!==false)
{
return 'Googlebot';
}
elseif(strpos($str,'Yandex')!==false)
{
return 'Yandex';
}
elseif(strpos($str,'Opera')!==false)
{
return 'Opera';
}
elseif(strpos($str,'Firefox')!==false)
{
return 'Firefox';
}
elseif(strpos($str,'MSIE')!==false)
{
return 'MSIE';
}
elseif(strpos($str,'Chrome')!==false)
{
return 'Chrome';
}
elseif(strpos($str,'Yahoo')!==false)
{
return 'Yahoo';
}
else
{
return mysql_real_escape_string($str);
}
}
А так ну куча if можно конечно разными способами переписать, например сделать проверку в цикле занеся, перед этим сравниваемые строчки в массив, но если например хром будет вылавливаться не по строке Crome а по строке Chromius, то придется хранить в массиве для каждого браузера список проверочных функции и усложнять цикл
Так что особого говна я тут не углядел.
> Crome а по строке Chromius
да собственно - не удивительно, угу. бровзер Кроме, угугу.
*по-джентльменски притворился, что фэйл случаен*
просто массив ключ => значение, проверять по ключу возвращать значение.
например не MSIE , а MSIE-6.x , тут ее придется скорее всего сравнивать по регулярке, или проводить более сложные манипуляции
{
$arr = array('Googlebot', 'Yandex', 'Opera', 'Firefox', 'MSIE', 'Chromius'=>'Chrome', 'Yahoo');
foreach($arr as $k => $v)
{
if(strpos($str, is_int($k) ? $arr[$k] : $k) !== false)
return $arr[$k];
}
return mysql_real_escape_string($str);
}
а так? :D