Ik ben voor mezelf lekker aan het prutsen. Nu wil ik voor mijn eigen site een statistieken site-je maken. Naar aanleiding van Request.ServerVariables("HTTP_USER_AGENT") wil ik achter de browser naam komen. een voorbeeldje:
bij IE6 krijg je terug de string "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1". Naar aanleiding daarvan maak ik er MS Internet Explorer 6.0 van.
bij Firefox krijg je de string "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0". Naar aanleiding daarvan maak ik er dan Mozilla Firefox 1.0
Alleen ik zit nu al ongeveer 2 dagen te prutsen en te zoeken hoe ik dit kan oplossen met reguliere expressies. Ik heb ook een array met de meest voorkomende browsers en waarin ze moeten worden omgezet.
Ik probeer dit een beetje te jatten
van PHP maar ik kan het niet omzetten. In PHP is de code alsvolgt:
kan iemand me opweg helpen?
p.s. sorry voor het verneuken van de layout
bij IE6 krijg je terug de string "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1". Naar aanleiding daarvan maak ik er MS Internet Explorer 6.0 van.
bij Firefox krijg je de string "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0". Naar aanleiding daarvan maak ik er dan Mozilla Firefox 1.0
Alleen ik zit nu al ongeveer 2 dagen te prutsen en te zoeken hoe ik dit kan oplossen met reguliere expressies. Ik heb ook een array met de meest voorkomende browsers en waarin ze moeten worden omgezet.
Ik probeer dit een beetje te jatten
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| if (preg_match( "/msie[\/\sa-z]*([\d\.]*)/i", $agent, $m ) && !preg_match( "/webtv/i", $agent ) && !preg_match( "/omniweb/i", $agent ) && !preg_match( "/opera/i", $agent )) {
// IE
return "MS Internet Explorer $m[1]";
} else if (preg_match( "/netscape.?\/([\d\.]*)/i", $agent, $m )) {
// Netscape 6.x, 7.x ...
return "Netscape $m[1]";
} else if ( preg_match( "/mozilla[\/\sa-z]*([\d\.]*)/i", $agent, $m ) && !preg_match( "/gecko/i", $agent ) && !preg_match( "/compatible/i", $agent ) && !preg_match( "/opera/i", $agent ) && !preg_match( "/galeon/i", $agent ) && !preg_match( "/safari/i", $agent )) {
// Netscape 3.x, 4.x ...
return "Netscape $m[2]";
} else {
// Other
$found = false;
foreach ($browserSearchOrder as $key) {
if (preg_match( "/$key.?\/([\d\.]*)/i", $agent, $m )) {
$name = "$browsersAlias[$key] $m[1]";
return $name;
break;
}
}
} |
kan iemand me opweg helpen?
p.s. sorry voor het verneuken van de layout