Peter: csv und PHP

Hallo zusammen,

hat einer von Euch zufällig in skript mit welchem ich mittels PHP eine csv-Datei öffnen kann  -  den Wert einer Spalte durch einen anderen (random-passwort-wert) ersetzen und danach wieder abspeichern kann.

Besten Dank,

Peter

  1. Hallo zusammen,

    hat einer von Euch zufällig in skript mit welchem ich mittels PHP eine csv-Datei öffnen kann  -  den Wert einer Spalte durch einen anderen (random-passwort-wert) ersetzen und danach wieder abspeichern kann.

    Besten Dank,

    Peter

    // auslesen
    $zeilen = file("datei.csv");
    // Spalten von Zeile 1 splitten
    $spalten = explode(";", $zeilen[0]);
    // gewünschte Zeichenkette als neuen Wert in Spalte 5 setzen
    $spalten[4] = $zeichenkette;
    // Spalten wieder zusammenfassen
    $zeilen[0] = implode(";", $spalten);
    // Alle Zeilen in Datei zurückschreiben
    $file = fopen("datei.csv", "w");
    for($i=0;$i<count($zeilen);$i++)fwrite($file, $zeilen[$i]);
    fclose($file);

    Gruss, Kay

  2. Hallo zusammen,

    hat einer von Euch zufällig in skript mit welchem ich mittels PHP eine csv-Datei öffnen kann  -  den Wert einer Spalte durch einen anderen (random-passwort-wert) ersetzen und danach wieder abspeichern kann.

    Nimm z.B. mein Datenbank-Modul für Textdateien. Es muss nur noch für csv-Dateien konfiguriert werden, also einige Characters ausgetauscht werden:
    <?php
    /*
    Verwendung:
    $dbfile = 'Pfad/Datenbank.Erweiterung'; // Name einer Textdatei
    include("Pfad/db-lesen.php");
    ... // Zugriff über das Array $

    Zum Format:
     * Eine Zeile der Textdatei entspricht einer Datenbankzeile
     * Kommentare sind jeweils von Zeilenanfang bis Zeilenende und beginnen
     mit einer Raute '#'. Ich empfehle Kommentare NUR am Anfang der Datei.
     * Die einzelnen Spalten werden durch den senkrechten Strich '|'
     voneinander getrennt.
    */

    $db = file($dbfile);
    for ($i = 0; $i < count($db); ++$i) {
    // durchlaufe die Datenbankdatei bis zum Dateiende
     if (preg_match("/^#/", $db[$i])) continue;
      // Kommentarzeilen beginnen mit einer Raute '#'
     if (preg_match("/^\s/", $db[$i])) continue;
      // Zeilen mit einem Space am Anfang werden ignoriert
     $datei = preg_split("/|/", $db[$i]);
      // VORSICHT: $datei ist ein Array!
     for ($ii = 0; $ii < count($datei); ++$ii)
      chop($datei[$ii]);
     $daten[] = $datei; // erstelle zweidimensionales Array
    }
    ?>

    Besten Dank,

    Keine Ursache