Avatar billede sorthvid Nybegynder
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?
Avatar billede dennismp Nybegynder
10. juni 2004 - 19:37 #1
echo $browser['platform'];
echo $browser['version'];

osv
Avatar billede sorthvid Nybegynder
10. juni 2004 - 22:11 #2
Det her returnerer ikke noget!!
<?php
$browser = get_browser();
echo $browser['version'];
?>

Hvorfor?
Avatar billede dennismp Nybegynder
10. juni 2004 - 22:39 #3
dunno..

Prøv at hente en ny browser_cap.ini:
http://www.garykeith.com/browsers/downloads.asp

så du har den seneste udgave.
Avatar billede sorthvid Nybegynder
10. juni 2004 - 22:56 #4
Hvad er det?
Avatar billede dennismp Nybegynder
10. juni 2004 - 23:11 #5
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."
Avatar billede sorthvid Nybegynder
11. juni 2004 - 09:58 #6
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å?
Avatar billede dennismp Nybegynder
11. juni 2004 - 10:06 #7
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)."
Avatar billede sorthvid Nybegynder
12. juni 2004 - 15:55 #8
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?
Avatar billede dennismp Nybegynder
12. juni 2004 - 16:35 #9
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 :)
Avatar billede sorthvid Nybegynder
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>");
?>
Avatar billede sorthvid Nybegynder
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
Avatar billede dennismp Nybegynder
14. juni 2004 - 12:37 #12
hvorfor kan du ikk bare bruge

$browser['navnet på feltet'] ?
Avatar billede sorthvid Nybegynder
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?!?!?
Avatar billede dennismp Nybegynder
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()).
Avatar billede sorthvid Nybegynder
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] =>
)
Avatar billede dennismp Nybegynder
16. juni 2004 - 10:19 #16
hov.

prøv så

$browser = get_browser();
print "browser: " . $browser->browser;
Avatar billede sorthvid Nybegynder
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?
Avatar billede dennismp Nybegynder
16. juni 2004 - 13:59 #18
$browser->version
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester