Datei bearbeiten

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von oconner, 15.08.2006.

  1. oconner

    oconner Thread Starter MacUser Mitglied

    Beiträge:
    269
    Zustimmungen:
    0
    MacUser seit:
    11.01.2006
    Hallo.

    Ich weis zwar wie ich mit PHP eine Datei im Web öffnen und bearbeiten kann, aber wie kann ich z.b. dem code sagen das er in einer php Datei nur den inhalt einer variable ändern soll.

    also quasi das eine Datei geöffnet wird und in $var="inhalt" Inhalt der Inhalt rein kommt den Ich im Webbrowser in ein Textfeld eingegeben habe.

    Soll quasi für ne Installations Datei dienen wo Benutzername und Passwort in eine php config Datei rein müssen.:)
     
  2. koli.bri

    koli.bri Gast

    Dafür müsstest Du die Zeile, in der die Zeile steht direkt einlesen und neu schreiben, was imho damit verbunden ist, die komplette Datei einzulesen, zu ändern und dann neu einzulesen.

    Vielleicht hilft es, eine zeite Datei für solche Sachen anzulegen, in der nur eine Zeile drin steht, "irgendwie" kodiert und mit Trennzeichen versehen, so dass man das ganz einfach in ein Array einlesen kann.

    Um mit den Werten zu Arbeiten kann man sich ja eine Funktion nach dem Schema

    PHP:
    function holewert(wert_den_ich_haben_will) {

      
    lese_datei_ein();
      
    $tmp explode(dateizeile);
      foreach(
    tmp as $tmp2){
        
    $var[] = dekodiere(tmp2);
      }

      switch(
    wert_den_ich_haben_will){
        case 
    "eins":
          return 
    $var[0];
        break;
        case 
    "oderwertzwei":
          return 
    $var[1];
        break;

    ...

       default:
         return 
    false;
       break;
      }

    }

    Oder halt in einer SQL-Datenbank, aber da ich annehme, das Du ein Script für die öfentlichkeit schreibst, was so simpel wie möglich gehalten ist, wäre das meine erste Idee.

    gruß
    Lukas
     
  3. 2nd

    2nd MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    MacUser seit:
    25.07.2004
    Jo, war auch mein erster Gedanke. Ich würde das auch ganz simpel in eine SQL-DB schreiben. Die Dateilösung ist ziemlich umständlich und langsam.

    2nd
     
  4. oconner

    oconner Thread Starter MacUser Mitglied

    Beiträge:
    269
    Zustimmungen:
    0
    MacUser seit:
    11.01.2006
    will aber extra kein sql benutzen da es ja nur um eine Zeile geht.
     
  5. goddess

    goddess MacUser Mitglied

    Beiträge:
    229
    Zustimmungen:
    10
    MacUser seit:
    26.02.2006
    Naja, Dateizugriffe sind aber schon um einiges schneller als ein Datenbankzugriff...

    Datei einlesen - Wert, der verändert wird mit Regular Expression suchen und ändern - zurückschreiben. Abhängig von der PHP-Version die du verwendest gehts einfacher oder schwerer.
     
  6. goddess

    goddess MacUser Mitglied

    Beiträge:
    229
    Zustimmungen:
    10
    MacUser seit:
    26.02.2006
    Achja, ich will hier nicht nur große Reden klopfen. Hier ist ein Beispiel wie der Austausch eines Wertes funktionieren könnte (ohne das drumherum von Dateieinlesen usw.)
    PHP:
    <?php
    //zuerst der Variable $subject einen Wert zuweisen, 
    //hier kann man den Inhalt der eingelesenen Datei reinklatschen
    $subject '$var="einWert123"';
    //zum Beweis die Ausgabe vorher
    print ($subject.'<br />'."\n");

    //Das ist der Reguläre Ausdruck:
    //Unsere Variable heisst $var, wir wissen, dass
    //danach ein = gefolgt von einem " und 
    //einer alphanumerischen Kombination unbekannter Länge.
    //Danach kommt wieder ein "
    $regex '/\$var=\"[A-Za-z0-9]*\"/';

    //Das ist der Wert, den wir ersetzen wollen. Es soll
    //wieder die Variable $var=" geschrieben werden, nur
    //der Inhalt ist ein anderer. Hier fügt man den Input
    //aus dem Textfeld im Browser ein. Das ganze macht man
    //mit einer banalen String-Konkatination
    $replace ='$var="einAndererWert"';

    //zu guter Letzt wird die Funktion aufgerufen, idealer-
    //weise können wir gleich die Variable $ subject verwenden 
    $subject preg_replace($regex$replace$subject);

    //Zum Beweis der Output
    print ($subject);

    //Die html-Ausgabe sollte sein:
    //$var="einWert3"<br />
    //$var="einAndererWert"
    ?>
    Wenn du PHP 5 verwenden solltest, dann kannst du auf die Datei lesend mit file_get_contents und schreibend mit file_put_contents zugreifen, ansonsten musst du es auf die alte Art machen.

    Damit hast du eine gute Grundlage für dein Script. Viel Spaß beim Anpassen.
     
    Zuletzt bearbeitet: 15.08.2006
  7. 2nd

    2nd MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    MacUser seit:
    25.07.2004
    Habe selbst noch einmal rumgesucht und die Infos gefunden - Du hast natürlich Recht. Danke für den Hinweis.

    2nd
     
  8. goddess

    goddess MacUser Mitglied

    Beiträge:
    229
    Zustimmungen:
    10
    MacUser seit:
    26.02.2006
    Klar hab ich recht. Ist mein Job, recht zu haben ;)
     
  9. 2nd

    2nd MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    MacUser seit:
    25.07.2004
    Schon klar - wenn der Name Programm ist...

    2nd
     
  10. goddess

    goddess MacUser Mitglied

    Beiträge:
    229
    Zustimmungen:
    10
    MacUser seit:
    26.02.2006
    Exakt! :D Der Nick ist eigentlich Server-Goddess und kommt aus der Zeit, als ich noch im IT-Support gearbeitet habe. Der war mir aber zu lang und ich hab ihn kurzerhand gekürzt :)

    @oconner: haben die tipps was geholfen?
     
Die Seite wird geladen...

Diese Seite empfehlen