10. juni 2004 - 18:48
Der er
17 kommentarer og 1 løsning
udtræk af object
Det er en fin lille kode: <?php $browser = get_browser(); foreach ($browser as $name => $value) { echo "<b>$name</b> $value <br />\n"; } ?> Men hvordan trækker jeg dele ud af den så som browser version eller platform, som jeg kan putte i variabler og arbejde videre med?
Annonceindlæg fra Infor
echo $browser['platform']; echo $browser['version']; osv
Det her returnerer ikke noget!! <?php $browser = get_browser(); echo $browser['version']; ?> Hvorfor?
det php bruger til get_browser
http://dk2.php.net/get_browser "In order for this to work, your browscap configuration setting in php.ini must point to the correct location of the browscap.ini file on your system. browscap.ini is not bundled with PHP but you may find an up-to-date browscap.ini file here. By default, the browscap directive is commented out."
Det er meningen at jeg skal kunne se hvad mine brugeres browser + version er... Er der så en anden måde at gøre dette på?
Ja. Fra kommentarene: "Another way, not depending on the actual browser version is this one (it parses the $HTTP_USER_AGENT string): preg_match_all("/[\w\.]+\/[\w\.]+/", $HTTP_USER_AGENT, $browser); preg_match_all("/\(.*\)/", $HTTP_USER_AGENT, $features); $browser = $browser[0]; foreach ($browser as $key=>$value) { $brow_ver = explode("/", $value); $browser[$brow_ver[0]] = $brow_ver[1]; unset($browser[$key]); } $features = $features[0][0]; $features = substr($features, 1, -1); $features = explode("; ", $features); At the end you have two arrays: $browser, which is an associative array that holds the browser types and version (mozilla for example has Mozilla => 5.0 and Gecko => 20020304) and $features that holds the features of the browser (use rv:<moz-version> to see the build of Mozilla)."
OK så skal jeg bare have bukket det i neon... Jeg bruger overstående kode, men hvad skal jeg skrive for at får trukket værdierne ud. Jeg vil gerne bare have det således: var1 = Internet Explorer var2 = 6.0 eller var1 = Netscape Navigator var2 = 7.0 Hvordan får jeg trukket det ud?
ok, så er det nok nemmest at du bruger fx:
http://phpsniff.sourceforge.net/ så kan du bruge:
$browser = new PHPSniff();
print "Browser: " . $browser->property('long_name') . "<br>";
print "version: " . $browser->property('version') . "<br>";
.. og meget mere :)
13. juni 2004 - 02:46
#10
Jeg brugte den her: <?php $browser = get_browser(); $i=0; foreach ($browser as $name => $value) { $variabel[$i]=$value; $i++; } print("<br>Browseren er: $variabel[4] $variabel[6].$variabel[7]<br>"); print("<br>Styresystemet er: $variabel[3]<br>"); ?>
13. juni 2004 - 23:52
#11
Det var måske lidt forhastet... Har lige fået parametrene: Browser: 1 Version: IE :) Tilbage til tegnebrættet
14. juni 2004 - 12:37
#12
hvorfor kan du ikk bare bruge $browser['navnet på feltet'] ?
14. juni 2004 - 16:30
#13
Det kan jeg af en eller anden grund ikke få noget ud af?!?!?! Lige nu bruger jeg som test: <?php //finder browser type og vesion $browser = get_browser(); foreach ($browser as $name => $value) { echo "<b>$name</b> $value <br />\n"; if ($name == "browser"){ $browser_type = $value; } else if ($name == "version"){ $browser_version = $value; } } $dennismptest = $browser['version']; print("Browser: $dennismptest<br>"); print("Browser: $browser_type<br>"); print("Version: $browser_version<br><br><br><br><br>"); ?> Og $browser_type og $browser_version giver et output... men ikke $dennismptest. Jeg ved ikke hvorfor?!?!?
15. juni 2004 - 15:49
#14
prøv at lave en <?php print "<pre>"; print_r( get_browser() ); print "</pre>"; ?> og dump outputtet her.. (jeg har ikke selv mulighed for at teste get_browser()).
15. juni 2004 - 22:31
#15
Det får jeg det her ud af: stdClass Object ( [browser_name_regex] => Mozilla/4\.0 (compatible; MSIE 6\.0.*;.*Windows NT 5\.1.*).* [browser_name_pattern] => Mozilla/4.0 (compatible; MSIE 6.0*;*Windows NT 5.1*)* [parent] => IE 6.0 [platform] => WinXP [browser] => IE [version] => 6 [majorver] => 6 [minorver] => 0 [css] => 2 [frames] => 1 [iframes] => 1 [tables] => 1 [cookies] => 1 [backgroundsounds] => 1 [vbscript] => 1 [javascript] => 1 [javaapplets] => 1 [activexcontrols] => 1 [cdf] => 1 [aol] => [beta] => [win16] => [crawler] => [stripper] => [wap] => [netclr] => )
16. juni 2004 - 10:19
#16
hov. prøv så $browser = get_browser(); print "browser: " . $browser->browser;
16. juni 2004 - 13:56
#17
Så får jeg denne her: browser: IE Så nu er du på sporet... Hvad skriver jeg så for at få vesionen?
16. juni 2004 - 13:59
#18
$browser->version
Vi tilbyder markedets bedste kurser inden for webudvikling