Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Misha v.3 15.10.2005 14:12 / 15.10.2005 14:20
вот ещё вариант:@CLASS detect @auto[] $browser[^table::create{name opera msie mozilla netscape }] #end @auto[] @_get_ver[user_agent;name] $result[] ^user_agent.match[($name).(\d+)(?:\.(\d+))?][ix]{ $result[ $.name[$match.1] $.ver($match.2) $.subver(^match.3.int(0)) ] } #end @_get_ver[] @os[user_agent] ^if(def $user_agent){ ^if(^user_agent.match[mac][i]){ $result[mac] }{ ^if(^user_agent.match[win][i]){ $result[win] }{ $result[unix] } } }{ $result[] } #end @os[] @agent[user_agent] ^if(def $user_agent){ ^browser.menu{ ^if(!def $result){ $result[^_get_ver[$user_agent;$browser.name]] } } } ^if(!def $result){ $result[ $.name[other] $.ver(0) $.subver(0) ] } #end @agent[]index.html
@main[] ^use[detect.p] OS: ^detect:os[$env:HTTP_USER_AGENT]<br /> $browser[^detect:agent[$env:HTTP_USER_AGENT]] Browser: $browser.name ${browser.ver}.${browser.subver}надо будет привести в нормальный вид метод @os[], проверить не ошибся-ли я где и заменить код в примерах :)