2017-03-08 4 views
1

Ich versuche, meine Config-Inhalt in Array zu konvertieren.Convert Bruchlinie zu Array

Dies ist meine Config Inhalt:

echo Executing Server Config... 
lanmode 0 
rcon_password dadasdasdsad 
maxplayers 10 
port 11494 
hostname SA-MP 0.3 Server 
gamemode0 grandlarc 1 
filterscripts base gl_actions gl_property gl_realtime 
announce 0 
query 1 
weburl www.sa-mp.com 
maxnpc 0 
onfoot_rate 40 
incar_rate 40 
weapon_rate 40 
stream_distance 300.0 
stream_rate 1000 

i dies wie folgt Array wollen konvertieren:

$array['lanmode'] // value is 0 
$array['rcon_password'] // value is dadasdasdsad 
... 

so, wie ich dies tun können, dankt allen und sorry für mein Englisch.

Antwort

1

Ein Weg ist, explode() zweimal zu verwenden: einmal, um jede Zeile zu erhalten, dann einmal, um jedes Element zu erhalten.

$config = array(); 
foreach (explode("\n", $configstring) as $v) { 
    $exp = explode(" ", $v); 
    $config[$exp[0]] = $exp[1]; 
} 

Wo $configstring ist Ihre Konfiguration wie oben angegeben (ohne die erste Zeile).

Ausgabe von $config:

Array 
(
    [lanmode] => 0 
    [rcon_password] => dadasdasdsad 
    [maxplayers] => 10 
    [port] => 11494 
    [hostname] => SA-MP 
    [gamemode0] => grandlarc 
    [filterscripts] => base 
    [announce] => 0 
    [query] => 1 
    [weburl] => www.sa-mp.com 
    [maxnpc] => 0 
    [onfoot_rate] => 40 
    [incar_rate] => 40 
    [weapon_rate] => 40 
    [stream_distance] => 300.0 
    [stream_rate] => 1000 
) 

Live demo


Wenn Sie von der ersten Zeile, um loszuwerden, wie Sie an der Spitze "Executing Server Config ..." haben Sie können nur unset() das erste Stück des Arrays nach der Explosion, wie diese

$config = array(); 
$exploded = explode("\n", $configstring); 
unset($exploded[0]); 
foreach ($exploded as $v) { 
    $exp = explode(" ", $v); 
    $config[$exp[0]] = $exp[1]; 
} 

Live demo with removal of first line


+0

Dank you so much! –