Bonjour,
Voilà je souhaite développer un site pour les panels de serveur de jeux. En ce moment je travaille sur comment récupérer le nom des serveurs de jeux, le nombre de joueur maximum etc (ce sont des jeux steam)... Donc j'ai commencé par lire sur ce forum un sujet concernant l'envoie de paquet udp pour ce genre de jeux, sans grande réussite. Sachant que chaque jeux à sa propre requête udp sa commençait à faire long. Donc j'ai cherché un peu et je suis tombé sur ce site http://gameq.sourceforge.net/. Ce site propose donc des sources pour avoir les informations du serveur. Je ne connais pas très bien la programmation php orienté objet donc j'ai quelques difficultés à comprendre l'ensemble du script proposé... Donc voilà mon code de page
Donc un bon copié/collé plus ou moins de la doc... et on obtient ceciCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 <? if(isset($_SESSION["serveur"])){ $serv=$_SESSION["serveur"]; $query="SELECT * FROM servj WHERE id_serv='".$serv."'"; $result=mysql_query($query); while($res=mysql_fetch_array($result)){ $id_serv=$res["id_serv"]; $ip_serv=$res["ip_serv"]; $port_serv=$res["port_serv"]; $slots_serv=$res["slots_serv"]; $nom_serv=$res["nom_serv"]; $mod_serv=$res["mod_serv"]; } $servers['serv'] = array(''.$mod_serv.'', ''.$ip_serv.'', ''.$port_serv.''); require_once 'GameQ.php'; // Initialize the class $gq = new GameQ; // Add the servers we just defined $gq->addServers($servers); // Request the data, and display it try { $data = $gq->requestData(); print_r($data); } // Catch any errors that might have occurred catch (GameQ_Exception $e) { echo 'An error occurred.'; } } ?>
Donc ça m'a l'air d'être un tableau associatif, dites moi après si je me trompe. Et donc j'ai énormément de difficultés à récupérer les valeurs dans des variables séparées. Donc mon tableau est dans $data, j'ai donc essayé un $maxp=$data['max_players']; puis un echo et je n'ai aucune valeur en retour. J'ai essayé de bidouiller la boucle foreach de php par ce que j'ai lu qu'elle servait a parcourir les tableau associatif et donc le résultat est que je n'arrive pas non plus à le parcourir. Donc surement que je ne l’utilise pas bien mais je n'arrive pas a trouver de site qui me parle pour l'usage de cette commande.Code:
1
2 Array ( [serv] => Array ( [protocol] => 48 [hostname] => Half-Life [map] => de_dust [game_dir] => cstrike [game_descr] => Counter-Strike [steamappid] => 10 [num_players] => 0 [max_players] => 20 [num_bots] => 0 [dedicated] => d [os] => l [password] => 0 [secure] => 1 [version] => 49 [num_rules] => 27745 [low_spectators] => 1.0 [coop] => 0 [deathmatch] => 1 [decalfrequency] => 30 [edgefriction] => 2 [hostage_debug] => 0 [hostage_stop] => 0 [humans_join_team] => any [max_queries_sec] => 1 [max_queries_sec_global] => 1 [max_queries_window] => 1 [mp_allowmonsters] => 0 [mp_autokick] => 1 [mp_autoteambalance] => 1 [mp_buytime] => 1.5 [mp_c4timer] => 45 [mp_chattime] => 10 [mp_consistency] => 1 [mp_fadetoblack] => 0 [mp_flashlight] => 0 [mp_footsteps] => 1 [mp_forcecamera] => 0 [mp_forcechasecam] => 0 [mp_fragsleft] => 0 [mp_freezetime] => 6 [mp_friendlyfire] => 0 [mp_ghostfrequency] => 0.1 [mp_hostagepenalty] => 13 [mp_kickpercent] => 0.66 [mp_limitteams] => 2 [mp_logdetail] => 0 [mp_logfile] => 1 [mp_logmessages] => 1 [mp_mapvoteratio] => 0.66 [mp_maxrounds] => 0 [mp_mirrordamage] => 0 [mp_playerid] => 0 [mp_roundtime] => 5 [mp_startmoney] => 800 [mp_timeleft] => 0 [mp_timelimit] => 0 [mp_tkpunish] => 0 [mp_windifference] => 1 [mp_winlimit] => 0 [pausable] => 0 [sv_accelerate] => 5 [sv_aim] => 1 [sv_airaccelerate] => 10 [sv_airmove] => 1 [sv_allowupload] => 1 [sv_alltalk] => 0 [sv_bounce] => 1 [sv_cheats] => 0 [sv_clienttrace] => 1 [sv_clipmode] => 0 [sv_contact] => [sv_friction] => 4 [sv_gravity] => 800 [sv_logblocks] => 0 [sv_maxrate] => 0 [sv_maxspeed] => 900 [sv_minrate] => 0 [sv_password] => 0 [sv_proxies] => 1 [sv_region] => 255 [sv_restart] => 0 [sv_restartround] => 0 [sv_stepsize] => 18 [sv_stopspeed] => 75 [sv_uploadmax] => 0.5 [sv_voiceenable] => 1 [sv_wateraccelerate] => 10 [sv_waterfriction] => 1 [_tutor_bomb_viewable_check_interval] => 0.5 [_tutor_debug_level] => 0 [_tutor_examine_time] => 0.5 [_tutor_hint_interval_time] => 10.0 [_tutor_look_angle] => 10 [_tutor_look_distance] => 200 [_tutor_message_character_display_time_coefficient] => 0.0_tutor_message_minimum_display_time [1] => _tutor_message_repeats [5] => _tutor_view_distance [1000] => [gq_online] => 1 [gq_address] => 88.190.19.180 [gq_port] => 27000 [gq_prot] => source [gq_type] => cs ) )
Si quelqu'un pouvait donc me montrer comment récupérer certaine variable uniquement de mon tableau je lui en serait reconnaissant par ce que la je patine vraiment...