[PHP] Datei auslesen und einen geänderten Wert einer Zeile ändern?

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Nemesis Force, 21. August 2009 .

  1. 21. August 2009
    Datei auslesen und einen geänderten Wert einer Zeile ändern?

    Hallo,
    ich habe eine PHP-Datei vorliegen, die pro Zeile einen Wert/String enthält, z.B. Benutzernamme, E-Mail, Website usw.
    Wenn der User sich jetzt einloggt und sich im Editor befindet (Formular), sollen in den Inputs, die Daten aus dieser Datei angezeigt werden. Wenn der User jetzt einen dieser Werte (ganz egal welchen) ändert und auf "speichern" klickt, dann soll die Zeile in der Datei, den geänderten Wert annehmen, also die Zeile soll überschrieben werden.

    Ich habe zwar bei Google gesucht, aber komme irgendwie nicht auf eine Lösung... im Moment mache ich es so, dass ich aus dem Array, jeder Zeile eine Variable zugewiesen habe, diese im Input ausgeben und die Datei mit "w+" öffnen und so neu anlege, ist aber zu umständlich, wenn ich weitere Werte in diese Datei schreiben will.

    Danke schonmal für eure Hilfe. Bewertung ist selbstverständlich.
     
  2. 22. August 2009
    AW: Datei auslesen und einen geänderten Wert einer Zeile ändern?

    Wieso arbeitest du nicht mit einer Datenbank? Würde das ganze vereinfachen ...

    Hier mal ein ungetestetes Script
    PHP:
    <? php
    $variablen 
    = array( "wohnort" "haustier" "twittername" "alter" );
    if (
    $_POST [ 'submit' ])
    {
      
    $wohnort  trim ( addslashes ( $_POST [ 'wohnort' ]));
      
    $haustier  trim ( addslashes ( $_POST [ 'haustier' ]));
      
    $twittername  trim ( addslashes ( $_POST [ 'twittername' ]));
      
    $alter  number_format ( $_POST [ 'alter' ]);
      
    $datei  = <<<DATEI
    <?php
    \$user['wohnort'] = "
    { $wohnort } ";
    \$user['haustier'] = "
    { $haustier } ";
    \$user['twittername'] = "
    { $twittername } ";
    \$user['alter'] = "
    { $alter } ";
    ?>
    DATEI;
      
    $file  fopen ( "./user/seinedatei.php" "w+" );
      
    rewind ( $file );
      
    fwrite ( $file $datei );
      
    fclose ( $file );
    }
    require 
    './user/seinedatei.php' ;
    ?>
    <form method="POST">
    Wohnort <input type="text" name="wohnort" value="<?php  print  $user [ 'wohnort' ];  ?>" />
    ...
    <input type="submit" />
    </form>
     
  3. 22. August 2009
    AW: Datei auslesen und einen geänderten Wert einer Zeile ändern?

    Datenbank kenn ich mich nicht aus und will ich auch nicht... wenn ich was mache, dann mit dem was mir an Wissen zur Verfügung steht

    Dein Lösungsansatz ist doch der selbe, wie ich ihne bereits habe...?!

    Ich will doch nur eine bestimmte Zeile ändern. Hab gelesen das es mit ner "foreach"-Schleife geht. Was ist aber wenn der Nutzer jetzt Name und E-Mail ändert? Dann müssen ja 2 Zeilen ersetzt werden. 2 unterschiedliche...

    ...boah, ist das kniffelig! :]
     
  4. 22. August 2009
    AW: Datei auslesen und einen geänderten Wert einer Zeile ändern?

    Ähm hat jeder nutzer seine eigene Datei?

    Wenn ja, dann lösch das File und erstell dann einfach eine neue!

    Dann musst nicht extra immer ein File öffnen, die Zeile Suchen und den Wert ändern.
     
  5. 22. August 2009
    AW: Datei auslesen und einen geänderten Wert einer Zeile ändern?

    Ich will dich nicht angreifen, aber der Grund, der gegen Datenbanken spricht ist deine Beschränktheit?

    Wieso hast du überhaupt mit PHP angefangen, hast du nicht probiert Dinge mit Wissen zu lösen, das du bereits hast?

    So wie du das ganze haben willst, klingt es zwar ziemlich gut, aber wird durchaus kompliziert, denke ich, und ich kann dir versichern, mit einer Datenbank lässt es sich schneller, flexibler und einfacher lösen.

    PHP & MySQL Datenbank - PHP Tutorial: MySQL mit PHP
    Hier wird eine ganz einfache Datenbank mit MySQL erklärt

    ###

    Könntest andernfalls mit preg_replace arbeiten bei veränderten Eigenschaften, zB
    PHP:
    $file //ganze originaldatei
    $file  preg_replace ( "/\$user['wohnort'] = \".*?\";/i" "\$user['wohnort'] = \"" . $neuer [ 'wohnort' ]. "\";" $file );
     
  6. 23. August 2009
    AW: Datei auslesen und einen geänderten Wert einer Zeile ändern?

    Naja, das mit dem preg_replace wird nicht so ganz klappen. Was ist wenn ich einfach mal im Benutzerkonto eine Option einfüge, in dieser der Kunde dann einen Eintrag macht und diese dann in die Datei geschrieben werden soll. Die Datei hat anfänglich nur 6 Zeilen, durch die neue Option kommt aber eine 7 hinzu...
     
  7. 23. August 2009
    AW: Datei auslesen und einen geänderten Wert einer Zeile ändern?

    PHP:
    $file  preg_replace ( "/\?>/" "\$neuevar = \"hahaha\";\n\?>" $file );
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.