Daten in .PHP Datein schreiben

tacef

Mitglied
Hallo

Ich hab ein kleines problem mit daten in eine PHP Datei schreiben.

Und zwar will ich meine config.lib.php, besser gesagt den array den sie enthält, übers ACP erweitern.

Ich hab mir jetzt testhalber mal ein kleines Script zusammen gebastelt allerdings funktioniert das nicht wirklich gut.

Ich kann die Datei auslesen, das funktioniert ohne Probleme, auch das senden der Daten an die write.php funktioniert problemlos.

Nur das schreiben funktioniert überhaupt nicht.

PHP:
<?php
$array=$_POST['arrayname'];
$datei=$_POST['dateiname'];
echo $datei;
echo $array;

$file = fopen("../lib/config.lib.php","w");
rewind($file);
fwrite($file, "$files['$array'] = $datei");
fclose($file);
?>


Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in D:\xampp\htdocs\pdc\admin\write.php on line 8

Das ist der Fehler den er mir auswirft.

Die Werte werden mit echo wie gesagt richtig ausgeworfen.
 
Zeile 8?
Ich seh erstmal einen Fehler in Zeile 9:

PHP:
fwrite($file, "$files['$array'] = $datei");

Muss lauten:

PHP:
fwrite($file, "\$files['$array'] = '$datei';");

wenn dein Array $files[] heißt und der Inhalt ein String ist.
 
Zuletzt bearbeitet:
Mach besser Folgendes daraus:
PHP:
fwrite($file, '$files['.var_export($array, true).'] = '.var_export($datei, true).';');
 
Danke für die schnelle Antwort.

Das eintragen funktioniert jetzt bis auf eine "Kleinigkeit":

Der PHP Tag wird beim eintragen gelöscht.
 
Dann Ergänze Gumbos zu:

Code:
fwrite($file, '<?PHP'."\n".'$files['.var_export($array, true).'] = '.var_export($datei, true).';');

(so hast du das ?PHP drin und ein Zeilenumbruch)
 
Beim Öffnen der Datei im „w“-Modus wird der Dateiinhalt gelöscht. Um Daten anzuhängen, musst du die Datei im „a“-Modus öffnen.
 
Ok danke für die Hilfe

Allerdings schreibt er mit w den neuen array nach dem ?> und nicht davor.

Gibt es dafür auch eine Lösung?
 
PHP benötigt das schließende Element nicht zwingend.

PHP:
<?php
echo 'Hello World';

Funktioniert genauso wie

PHP:
<?php
echo 'Hello World';
?>
 
Zurück