dave: Werte in eine Datei schreiben

Moin =)

Der Anfang einer index.php sieht so aus:

<?php
session_start();
$sitename = '100100';
?>

Die Datei befindet sich im Ordner login/100100/index.php. Ich möchte die Variable $sitename immer durch ein Script ändern lassen (z.b. in 100200). Dazu habe ich folgendes Script geschrieben:

// Datei öffnen
$datei = fopen("login/index.php","r+");
// Die ersten 40 Zeichen einlesen
$indexchange = fgets($datei, 40)
// angeben in was der Wert geändert werden soll, $benutzername beinhaltet dabei den neuen Wert (z.b. 100200)
$indexchange = "<?php
session_start();
$sitename = '"$benutzername;
// Sicherheitshalber an den Anfang der Datei gehen
rewind($datei);
// Wert in die Datei schreiben
fwrite($datei, $indexchange);
// Datei schliessen
fclose($datei);

Das Script funktioniert allerdings nicht... ist es überhaupt nötig, dass ich den ganzen Anfang der Datei mit überschreiben lasse? Kann ich nicht sagen, dass er nur die Zeichen 34-40 schreiben soll?

Ziel ist es also, in die oben abgebildete Datei die Zahl 100100 zu schreiben.

Hoffe auf Hilfe.
Dave

  1. $indexchange = "<?php
    session_start();
    $sitename = '"$benutzername;
    // Sicherheitshalber an den Anfang der Datei gehen

    Das ist 1. nicht vollständig und 2. müßtest Du auch PHP-Code escapen, also z.B. $sitename statt $sitename schreiben.

    Das Script funktioniert allerdings nicht... ist es überhaupt nötig, dass ich den ganzen Anfang der Datei mit überschreiben lasse? Kann ich nicht sagen, dass er nur die Zeichen 34-40 schreiben soll?

    Einfacher: den Dateiinhalt per explode() mit Delimiter chr(13) (Zeilenumbruch) in ein Array schreiben, $array[2] überschreiben, mit implode() wieder zurück und in die Datei speichern.