[PHP] Problem mit array auslesen

slang

w3news.de
ID: 1181
L
17 September 2006
275
5
Hallo,

also ich hab da ein 'kleines' Problem mit einem Array auslesen. Ich hab folgendes Script auf php.net gefunden um den Browser eines Besuchers herauszufinden, zeigt mir auch wunderbar alles mögliche an.

Das Skript:
PHP:
<?php
function list_array ($array) {
   while (list ($key, $value) = each ($array)) {
       $str .= "<b>$key:</b> $value<br>\n";
   }
   return $str;
}
echo "$HTTP_USER_AGENT<hr>\n";
$browser = get_browser();
echo list_array ((array) $browser);

?>

Nun möchte ich die einzelnen Werte in einer Variable speicher um diese dann in meiner Datenbank einzutragen. Wie mache ich das aber?

Vielen Dank!
 
Meinst du so?

PHP:
$foo = serialize(get_browser());
mysql_query("UPDATE user SET browser='".addslashes($foo)."' WHERE uid=1", $bar);
oder so:

PHP:
$foo = get_browser();
mysql_query("UPDATE user SET browser='".addslashes($foo['browser'])."' WHERE uid=1", $bar);
 
Meinst du so?

PHP:
$foo = serialize(get_browser());
mysql_query("UPDATE user SET browser='".addslashes($foo)."' WHERE uid=1", $bar);
oder so:

PHP:
$foo = get_browser();
mysql_query("UPDATE user SET browser='".addslashes($foo['browser'])."' WHERE uid=1", $bar);

Danke schon mal, aber nur zum besseren Verständnis, wie kann ich mit der get_browser funktion zum Beispiel den Ausgabewert "WinXP" in eine Variable speichern und weiter verarbeiten?

Wenn ich das richtig verstehe trägt der bei Deinen Scripts oben alles ein, oder?
 
Beim zweiten Schnipsel trägt er nur den Browser ein, nämlich $foo['browser'] - hätte ich das OS eintragen wollen, wäre es $foo['platform'] gewesen.

Alle Indizes findest du im heiligen Buch eines jeden PHP-Coders.
 
Ah, sorry, ich hab nicht aufgepasst. Richtig müsste es natürlich get_browser(null, true) heißen - dann gibt er auch ein Array zurück :)
 
Ah, sorry, ich hab nicht aufgepasst. Richtig müsste es natürlich get_browser(null, true) heißen - dann gibt er auch ein Array zurück :)
Wunderprächtig, jetzt funzt es einwandfrei! Danke Dir.

Aber das hier begreif ich einfach nicht, von der Funktion her :arrow: get_browser(null, true)
 
mixed get_browser ( [string user_agent [, bool return_array]] )
Alle Paramenter sind freiwillig. user_agent kann z.B. mit einem Wert aus einer DB gefüllt werden, wenn der aber vom Typ null ist, dann wird der HTTP_USER_AGENT genommen.

return_array = true :arrow: Ergebnis als Array
alle sonstigen Fälle :arrow: Ergebnis als Objekt
 
Alle Paramenter sind freiwillig. user_agent kann z.B. mit einem Wert aus einer DB gefüllt werden, wenn der aber vom Typ null ist, dann wird der HTTP_USER_AGENT genommen.

return_array = true :arrow: Ergebnis als Array
alle sonstigen Fälle :arrow: Ergebnis als Objekt
Find ich gut, da wäre nämlich grad meine 2. Frage:

Da ich bisher nämlich nur den User Agent, also "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; FDM)", in der DB eingetragen habe, wäre jetzt die Frage wie ich das auswerten könnte, ich dachte mir ungefähr so:

PHP:
$foo = get_browser ( [string $db_user_agent [, bool return_array]] )
echo $foo['browser'];

Geht das so, oder ist das Quatsch?
 
PHP:
$foo = get_browser ( [string $db_user_agent [, bool return_array]] )
echo $foo['browser'];
So geht nicht und so leider auch nicht:
PHP:
$db_user_agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; FDM";
$foo = get_browser([string [$db_user_agent],true]);

echo $foo['browser'];  
echo $foo['platform'];
Wie aber nun? :think:
 
PHP:
$foo = get_browser($db_user_agent,true);
Im Manual bezeichnen [ und ], dass der Paramenter optional ist, das war aus dem Manual kopiert. "string" stand zur Information auch dabei - man könnte also z.B. keinen Array angeben ;)
 
PHP:
$foo = get_browser($db_user_agent,true);
Im Manual bezeichnen [ und ], dass der Paramenter optional ist, das war aus dem Manual kopiert. "string" stand zur Information auch dabei - man könnte also z.B. keinen Array angeben ;)
Wie peinlich :oops: :roll:

Habs aber jetzt hinbekommen auch aus meinen schon vorhanden Einträgrn, den agent auszulesen, werde mal damit dann beginnen die DB auf Vordermann zu bringen!

Danke nochmals...