Inhalt direkt in einer .csv finden und ändern

petermedien

Mitglied
Hallo Leute

wer kann mir helfen??

ich möchte direkt mit PHP folgende Aktionen durchführen:

1. direkt einen Zeileninhalt finden

Beispiel für Inhalt der .csv:

1,würfel,rot,60,60,marmor
2,kugel,blau,50,50,holz
3,kegel,chrom,20,100,alu

hier möchte ich direkt in dieser datei die Eintragung
am Anfang der Zeile, eben die 1 suchen
können, ähnlich wie es bei UNIX möglich ist.

2.Zeileninhalt ändern

hier möchte ich den Zeileninhalt in z.b. Zeile 2:
2,kugel,blau,50,50,holz

abändern. Geht das auch in PHP durch gezieltes herausschneiden
und ersetzten??

Danke schon mal

Peter
 
jo, das sollte gehen.

mit
PHP:
$array=file("dateiname.csv")
holst Du Dir erstmal die komplette Datei in ein Array, und kannst dort dann "ganz normal" mit Variablen arbeiten.

Anschließend schreibst Du das Array Zeilenweise wieder in Deine Datei.


Dunsti
 
Natürlich geht das.

Da ich jetzt nicht weiß, wie gut du dich schon mit PHP auskennst, geb ich dir vorerst mal nur diese Denkanstöße:

1. file()
Liest eine Datei Zeilenweise ein und gibt diese als Array, in dem jedes Element eine Zeile darstelltm zurück.

Beispiel:
PHP:
$daten = file("daten.csv");
echo "Zeile 1: ".$daten[0];
echo "Zeile 2: ".$daten[1];
echo "Zeile 3: ".$daten[2];
Ausgabe:
Code:
Zeile 1: 1,würfel,rot,60,60,marmor 
Zeile 2: 2,kugel,blau,50,50,holz 
Zeile 3: 3,kegel,chrom,20,100,alu

2. explode()
Zerteilt einen String anhand eines Trennzeichens und gibt ein Array mit den Bestandteilen zurück.

Beispiel:
PHP:
$zeile1 = explode(",", $daten[0]);
echo "ID: ".$zeile1[0]."; Form: ".$zeile1[1]."; Farbe: ".$zeile1[2]."; Länge: ".$zeile1[3]."; Breite: ".$zeile1[4]."; Material: ".$zeile[5];
Ausgabe:
Code:
ID: 1; Form: würfel; Farbe: rot; Länge: 60; Breite: 60; Material: marmor

3. implode()
Umkehrfunktion zu explode(): Fügt ein Array zu einem String mit Trennzeichen zusammen.

Beispiel:
PHP:
echo "Ändere Farbe von Zeile 1 auf blau...\n";
$zeile1[2] = "blau";
$daten[0] = implode(",", $zeile1);
echo "Neue Zeile 1: ".$daten[0];
Ausgabe:
Code:
Ändere Farbe von Zeile 1 auf blau...
Neue Zeile 1: 1,würfel,blau,60,60,marmor


HTH :)



[edit]Hm... nächstes mal ess ich kein Eis vor dem Abschicken... ;)[/edit]
 
Super toll,

schnelle Hilfe und futzige Antwort.

Danke schon mal dunsti und besoderst reima.

Habe deine Variante, reima, gleich umgesetzt
und es ging natürlich. Super viel mühe hast
du dir da gemacht und so ruck zuck.

Es ist mir aber irgend wie durch die
brust ins Auge.

Geht das denn mit PHP nicht direkt in
der entsprechenden .csv, ohne vorher
umständlich auslesen, verändern, schreiben
etc??

Oder dann wieder nur in Verbindung mit Datenbank??

Danke, danke, danke,

Peter
 

Neue Beiträge

Zurück