Ich bin den ganzen Tag am überlegen wie ich eine config datei auslesen kann und deren Inhalt in einen Array absicher.
Da ich Internetprobleme habe konnte ich nicht wirklich google nutzen um das zu suchen was ich benötige.
Ich habe in der Configdatei das drinstehen:
filterscripts b_attach irp_cmd
plugins mysql streamer
.....
Ich möchte die so zerlegen, das er mir das ausgibt was hinter den ersten wort steht also als Bsp.:
Da ich keine 15 Minuten warten will um eine Seite zu laden habe ich mal etwas rumprobiert
Nur hier wird es absolut falsch gesetzt…
hier mal der Code mit den debug
[php] function readServerConfig($path) {
$file = fopen($path, ‚r‘);
$str = ‚‘;$count = 1;
while($line = fgets($file)){
echo $line.‚ ‘;
$str .= str_replace($line, ’ ', ‚=‘, $count) .„\n“;
}
echo „str: “;
print_r($str);
return parse_ini_string($str);
}[/php]
Heraus kommt das
echo Executing Server Config...
lanmode 0
rcon_password 1234
maxnpc 1
maxplayers 101
port 7777
hostname SA-MP 0.3 Server
gamemode0 irp
filterscripts b_attach irp_cmd
plugins mysql streamer
announce 0
query 1
chatlogging 0
weburl www.sa-mp.com
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000
logtimeformat [%H:%M:%S]
str:
= = = = = = = = = = = = = = = = = = = =
Warning: syntax error, unexpected '=' in Unknown on line 1 in D:\xampp\htdocs\include\config.php on line 36
So wie ich die Funktion verstehe, kannst du dir das vorherige zeilenweise Auslesen der Datei sparen. Das wird anscheinend alles von der Funktion übernommen.
Bin nicht so bewandert mit PHP. Daher muss ich ins Blaue raten.
Ich denke der Aufbau deiner Config-Datei ist „falsch“. Anscheinend brauchst du vor jeder Wertzuweisung ein „=“.
Soetwas
[PHP]$config = explode(„ “, nl2br($config));[/PHP]
ist doch völliger Quatsch. Warum liest du die Datei nicht mit file ein, dann hast du ein Array, was du brauchst?
[PHP]$config = array_map(function($n)[/PHP]
Warum machst du da keine eigene Funktion auf, anstatt sie erst per array_map zu erzeugen?