Hallo,
ich habe eine excel/csv datei, in der namen, nachnamen etc stehen.
Wie kann ich jetzt ein Script basteln, das mir diese Datei öffnet und bei
jedem Datensatz den namen nimmt und ihn als md5 verschlüsselt und in die nachbarspalte einfügt ?
Ist das überhaupt möglich mit PHP ?
Muss doch machbar sein, meiner Meinung nach, oder ?
Wäre sehr nett wenn ihr mir mal wieder helfen könntet.
Mfg
Condor
Excel/CSV Datei automatisch bearbeiten ?
- mad-manne
- Ehemaliges Teammitglied
- Beiträge: 5403
- Registriert: 18.03.2005 10:00
- Wohnort: Marl im Ruhrgebiet
Re: Excel/CSV Datei automatisch bearbeiten ?
Also zunächst mal ... machbar ist das mit einer csv-Datei, da dies eine reine Textdatei ist!Condor hat geschrieben:Wäre sehr nett wenn ihr mir mal wieder helfen könntet.
Die Frage wäre also, wie wir dir genau weiterhelfen können?
Hast du Probleme mit einem bestimmten Teil der Aufgabe oder möchtest du die komplette Lösung haben?
Kleiner Tipp zum prinzipiellen Aufbau eines solchen skripts:
- Datei öffnen mittels fopen()
- Zeilenweise einlesen mittels fgets()
- Die Zeile in ihre Bestandteile zerlegen mittels explode()
- die Daten aus der gewünschten "Spalte" mittels md5 verschlüsseln
- die daten in der gewünschten Reihenfolge in eine andere zurückschreiben mittels ...
- Bitte den rest selbst erforschen
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Supportanfragen via E-Mail oder PN werden ignoriert
Hi,
das Problem ist nicht Öffnen (fopen) oder Einlesen (fgets), sondern
mit der Verschlüsselung und einfügen.
Mein genaues Problem:
Wie gesagt, die Datei ist eine Textdatei und ich kann nicht sagen, nimm die Spalte "Name" mach daraus md5(name) und füge es in Spalte "user_id" ein.
Bei einer DB kann ich ja die Spalten direkt ansprechen.
Hier sind die ja "virtuell", durch ein Kommata getrennt.
Wie kann ich da am besten vor gehen ?
Mfg
Condor
das Problem ist nicht Öffnen (fopen) oder Einlesen (fgets), sondern
mit der Verschlüsselung und einfügen.
Mein genaues Problem:
Wie gesagt, die Datei ist eine Textdatei und ich kann nicht sagen, nimm die Spalte "Name" mach daraus md5(name) und füge es in Spalte "user_id" ein.
Bei einer DB kann ich ja die Spalten direkt ansprechen.
Hier sind die ja "virtuell", durch ein Kommata getrennt.
Wie kann ich da am besten vor gehen ?
Mfg
Condor
- mad-manne
- Ehemaliges Teammitglied
- Beiträge: 5403
- Registriert: 18.03.2005 10:00
- Wohnort: Marl im Ruhrgebiet
Hatte ich dir doch geschrieben!Condor hat geschrieben:Wie kann ich da am besten vor gehen ?
Manne.mad-manne hat geschrieben:Die Zeile in ihre Bestandteile zerlegen mittels explode()
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Supportanfragen via E-Mail oder PN werden ignoriert
- mad-manne
- Ehemaliges Teammitglied
- Beiträge: 5403
- Registriert: 18.03.2005 10:00
- Wohnort: Marl im Ruhrgebiet
Letzter Tipp erstmal bevor ich meine Moralpredigt ablasse 
Du hast ja nun die Spalten in einem Array was von 0 bis n (Anzahl der Spalten aus deiner csv) indiziert ist.
Nun schreibst du genau diese einzelnen Spalten des Arrays zurück in eine neue Datei und "fügst" zwischen den Spalten, wo du deine neue Spalte einfügen willt ein ein .. Trennzeichen dahinter .. fertig.
Moralpredigt
Entschuldige bitte .. kannst/willst du nun selbst programmieren, oder möchtest du ein fertiges Skipt haben?
Das hatte ich schonmal aus gutem Grund am Anfang gefragt.
Wenn ich dir das jetzt weiterhin Schritt für Schritt vorkaue(was ich vom Ablauf her übrigens ebenfalls bereits gemacht habe), wirst du zwar ein funktionierendes Programm haben. Verstanden hast du dann aber nix
Dieses Forum ist in erster Linie dafür gedacht Autoren bei konkreten Problemen Hilfe anzubieten und nicht um Instant-Scripte "zu bestellen". Wenn du also bei jedem Problem gleich wieder eine Rückfrage stellst anstatt selbst zu versuchen mittels der dir gegebenen Ratschläge selbst weiterzukommen .. dann wirst du es als Programmierer nicht weit bringen.
Sorry für die harten Worte, aber so sehe ich das.
FAZIT: Wenn du an einer vollständigen Lösung interessiert bist, dann stelle deine Anfrage in die Jobbörse .. ansonsten helfe ich dir gerne weiter vorausgesetzt ich kann erkennen, dass du selbst versuchst ein wenig mitzuarbeiten. Wie wäre es zum Beispiel damit dein bisher vorhandenes Script hier zu verlinken, damit man sehen kann, wie weit du schon bist ?
Nix für Ungut
Manne.

Du hast ja nun die Spalten in einem Array was von 0 bis n (Anzahl der Spalten aus deiner csv) indiziert ist.
Nun schreibst du genau diese einzelnen Spalten des Arrays zurück in eine neue Datei und "fügst" zwischen den Spalten, wo du deine neue Spalte einfügen willt ein
Code: Alles auswählen
md5($deinarray[$dein_index_der_zu_verschlüsselnden_spalte])
Moralpredigt
Entschuldige bitte .. kannst/willst du nun selbst programmieren, oder möchtest du ein fertiges Skipt haben?
Das hatte ich schonmal aus gutem Grund am Anfang gefragt.
Wenn ich dir das jetzt weiterhin Schritt für Schritt vorkaue(was ich vom Ablauf her übrigens ebenfalls bereits gemacht habe), wirst du zwar ein funktionierendes Programm haben. Verstanden hast du dann aber nix

Dieses Forum ist in erster Linie dafür gedacht Autoren bei konkreten Problemen Hilfe anzubieten und nicht um Instant-Scripte "zu bestellen". Wenn du also bei jedem Problem gleich wieder eine Rückfrage stellst anstatt selbst zu versuchen mittels der dir gegebenen Ratschläge selbst weiterzukommen .. dann wirst du es als Programmierer nicht weit bringen.
Sorry für die harten Worte, aber so sehe ich das.
FAZIT: Wenn du an einer vollständigen Lösung interessiert bist, dann stelle deine Anfrage in die Jobbörse .. ansonsten helfe ich dir gerne weiter vorausgesetzt ich kann erkennen, dass du selbst versuchst ein wenig mitzuarbeiten. Wie wäre es zum Beispiel damit dein bisher vorhandenes Script hier zu verlinken, damit man sehen kann, wie weit du schon bist ?
Nix für Ungut

Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Supportanfragen via E-Mail oder PN werden ignoriert
Hi,
dankeschön. Habs jetzt so hinbekommen:
Mfg
Condor
dankeschön. Habs jetzt so hinbekommen:
Code: Alles auswählen
<?php
$datei = fopen ("xy.csv", "r");
$fn="test.csv";
$fp=fopen($fn,"w");
while (!feof($datei)) {
$puffer = fgets($datei, 4096);
list($spalte1, $spalte2, $spalte3) = explode(";", $puffer);
$ver = md5($spalte3);
$text=$spalte1.";".$spalte2.";".$ver."\n";
fwrite($fp,$text);
}
fclose($fp);
fclose ($datei);
?>
Condor
Zuletzt geändert von Condor am 16.03.2006 11:47, insgesamt 3-mal geändert.
Hi nochmal,
hab erst jetzt deinen Beitrag gelesen.
Was meinst du warum ich so frage ?
Ich hätte von Anfang an sagen können, das mir jemand ein fertiges Script bauen soll.
Das will ich aber nicht, weil ich davon nichts habe.
Ich stelle auch manchmal absichtlich dumme Fragen um an mein Ziel zu kommen.
Ich habe NIE gesagt das ich ein fertiges Script haben möchte, deshalb hättest du dir das mit der "Jobbörse" sparen können, da diese für mich uninteressant ist.
Ich finde das gerade nicht sehr nett.
Bei den Leuten die schreiben: "Hey, schreibt mir bitte ein Script das ... kann. Brauche es bis morgen. Cu", verstehe ich deine Aussage.
Sonst nicht.
Mein Beitrag ist nicht böse gemeint, soll nur eine Gegenkritik sein.
Ich danke dir trotzdem, da ich mein Problem mit dir gelöst habe.
Bis bald.
Mfg
Condor
hab erst jetzt deinen Beitrag gelesen.
Was meinst du warum ich so frage ?
Ich hätte von Anfang an sagen können, das mir jemand ein fertiges Script bauen soll.
Das will ich aber nicht, weil ich davon nichts habe.
Ich stelle auch manchmal absichtlich dumme Fragen um an mein Ziel zu kommen.
Ich habe NIE gesagt das ich ein fertiges Script haben möchte, deshalb hättest du dir das mit der "Jobbörse" sparen können, da diese für mich uninteressant ist.
Ich finde das gerade nicht sehr nett.
Bei den Leuten die schreiben: "Hey, schreibt mir bitte ein Script das ... kann. Brauche es bis morgen. Cu", verstehe ich deine Aussage.
Sonst nicht.
Mein Beitrag ist nicht böse gemeint, soll nur eine Gegenkritik sein.
Ich danke dir trotzdem, da ich mein Problem mit dir gelöst habe.
Bis bald.
Mfg
Condor