String teilen

tomi

Mitglied
Hallo!

Ich habe folgende Zeichenkette:
PHP:
$string = "allow_spectators0clanmod_cfgversionv1.81.25clanmod_version1.81.25 Betacm_addon_mapextend0cm_infowww.unitedadmins.comcm_nextmapde_dust2cm_publicslotsleft2cm_real_reservedslots0cm_timeleft27:23coop0deathmatch1decalfrequency30edgefriction2max_queries_sec1max_queries_sec_global1max_queries_window1mp_allowmonsters0mp_autokick0mp_autoteambalance0mp_buytime0.5mp_c4timer35mp_chattime10mp_consistency1mp_fadetoblack0mp_flashlight1mp_footsteps1mp_forcecamera0mp_forcechasecam0mp_fragsleft0mp_freezetime3mp_friendlyfire1mp_ghostfrequency0.1mp_hostagepenalty2mp_kickpercent0.66mp_limitteams1mp_logdetail1mp_logfile1mp_logmessages1mp_mapvoteratio0.6mp_maxrounds0mp_mirrordamage0mp_playerid0mp_roundtime3mp_startmoney0800mp_timeleft0mp_timelimit30mp_tkpunish0mp_winlimit0pausable0statsme_version2.7.1sv_accelerate5sv_aim0sv_airaccelerate10sv_airmove1sv_allowupload1sv_alltalk0sv_bounce1sv_cheats0sv_clienttrace1sv_clipmode0sv_contactsv_friction4sv_gravity800sv_logblocks0sv_maxrate12500sv_maxspeed900sv_minrate0sv_password0sv_proxies1sv_region255sv_restart0sv_restartround0sv_stepsize18sv_stopspeed75sv_voiceenable1sv_wateraccelerate10sv_waterfriction1wwclconfig_version2.56_INET-WAR"

Das sind die Einstellungen eines CS-Servers. Und diese möchte ich jetzt geordnet und natürlich getrennt ausgeben.

Nur ich weiß nicht genau wie ich die Zeichenkette trennen soll, damit ich jeweils jede einzelne Variable und Wert und erhalte.
In dieser Zeichenkette stehen die Variablen und Werte direkt aneinandergereiht.
Ein Bsp:
1. Variable: allow_spectators - Wert: 0
2. Variable: clanmod_cfgversion - Wert: v1.81.25
usw...

Wie aber kann ich jetzt diese einzelnen Dinge rausfiltern?
Schonmal danke!
 
Oh.. echt? :p
Wenn ich das hätte würde ich hier nicht fragen, aber der Server gibt nunmal nix anderes aus und es muss irgendwie gehen.
 
Nein das MUSS überhaupt nicht gehen, es sei denn da sind irgendwelche Steuerzeichen wie \n drin, die so nur nicht zu sehen sind.

Also wie liefert er diesen String und wie kommst du darauf, dass das gehen MUSS ?
 
Es sei denn, die Reihenfolge der Schlagwörter bliebe immer gleich, und du würdest sie aufschreiben, etwa so:

  $schlagwoerter[] = "allow_spectators";
  $schlagwoerter[] = "clanmod_cfgversion";
  $schlagwoerter[] = ...;

dann wär's möglich die Werte zu ermitteln.
 
Doch es muss gehen, denn es gibt Scripts zum Auswerten solcher Ausgaben.

Die Ausgabe sieht so wie aus wie in meinem ersten Post, eben nur ohne Variable ($string). Vor der Zeichenkette steht noch ein ASCII - Zeichen, welches die Anzahl dieser Server-Settings wiedergibt.

Das ist die Ausgabe vom Server:
PHP:
ENallow_spectators0clanmod_cfgversionv1.81.25clanmod_version1.81.25 Betacm_addon_mapextend0cm_infowww.unitedadmins.comcm_nextmapde_dust2cm_publicslotsleft1cm_real_reservedslots0cm_timeleft26:29coop0deathmatch1decalfrequency30edgefriction2max_queries_sec1max_queries_sec_global1max_queries_window1mp_allowmonsters0mp_autokick0mp_autoteambalance0mp_buytime0.5mp_c4timer35mp_chattime10mp_consistency1mp_fadetoblack0mp_flashlight1mp_footsteps1mp_forcecamera0mp_forcechasecam0mp_fragsleft0mp_freezetime3mp_friendlyfire1mp_ghostfrequency0.1mp_hostagepenalty2mp_kickpercent0.66mp_limitteams1mp_logdetail1mp_logfile1mp_logmessages1mp_mapvoteratio0.6mp_maxrounds0mp_mirrordamage0mp_playerid0mp_roundtime3mp_startmoney0800mp_timeleft0mp_timelimit30mp_tkpunish0mp_winlimit0pausable0statsme_version2.7.1sv_accelerate5sv_aim0sv_airaccelerate10sv_airmove1sv_allowupload1sv_alltalk0sv_bounce1sv_cheats0sv_clienttrace1sv_clipmode0sv_contactsv_friction4sv_gravity800sv_logblocks0sv_maxrate12500sv_maxspeed900sv_minrate0sv_password0sv_proxies1sv_region255sv_restart0sv_restartround0sv_stepsize18sv_stopspeed75sv_voiceenable1sv_wateraccelerate10sv_waterfriction1wwclconfig_version2.56_INET-WAR

Das N vor allow ist das ASCII Zeichen, welches die Anzahl der Server-Einstellungen beinhaltet.
 
Und wie fragst du diesen String vom Server ab ? Warum schaust du nicht mal in die bestehenden Scripte rein, wenns die schon gibt ?
 
Zurück