Чел слабо представляет тему раз спрашивает про функицю php по определению "бот / не бот".
Вообще, всё что злая привела - это не фильтрация ботов, это отсев краулеров. Для отсева краулеров вполне достаточно проверить юзер-агент на предмет содержания стоп-слов. Если хочется 100% - сделать js шифрованный редирект.
По теме фильтрации ботов я ничего не скажу, потому - что тогда придётся переписывать фильтры
Но если всё - таки ОЧЕНЬ ХОЧЕТСЯ и с руками всё в порядке - посмотрите как борется google, 7search и т.д. Думаю таких мер вполне хватит.