parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

посмотрел я на метод, что лежит в примерах и он мне не понравился :)

Misha v.3 15.10.2005 14:12 / 15.10.2005 14:20

вот ещё вариант:
detect.p
@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[], проверить не ошибся-ли я где и заменить код в примерах :)