Datensatz aus *.txt und *.csv löschen
Mark
- php
Ein "Hallo" an alle,
schon irgendwie komisch, bekomme komplette Dateien gelöscht aber keine einzelnen Datensätze aus einer *.csv
suche schon ein paar Stunden nach einer Lösung wie ich aus einer kleinen DatenBank, die als *.csv gespeichert ist, einen einzelnen Datensatz lösche.
Oder geht das nur durch den Umweg, alle Datensätze ausser der zu löschenden auszulesen und die *.csv dann zu überschreiben?
Beispiel, habe eine *.csv mit folgendem Inhalt:
ID;Name;Strasse;PLZ;Ort
1;Mueller;Meierstr.1;33333;Kuhkaff01
2;Meier;Muellerstr.2;44444;Kuhkaff02
3;Schmidt;Hauptstr.3;55555;Kuhkaff03
...so, Datensatz 2 soll gelöscht werden, und nun?
Habe ja in PHP nur "w" und "a" zur Verfügung, also entweder überschreiben, oder anhängen. Sehe ich das verkehrt?
Vielleicht ist die Lösung ja auch wieder so simpel, dass es nirgends mal mehr erwähnt wird *g*
Hope es kann mir einer einen Tip geben, danke schonmal
Gruss Mark
Hallo,
ID;Name;Strasse;PLZ;Ort
1;Mueller;Meierstr.1;33333;Kuhkaff01
2;Meier;Muellerstr.2;44444;Kuhkaff02
3;Schmidt;Hauptstr.3;55555;Kuhkaff03...so, Datensatz 2 soll gelöscht werden, und nun?
Habe ja in PHP nur "w" und "a" zur Verfügung, also entweder überschreiben, oder anhängen. Sehe ich das verkehrt?
Die einzige Möglichkeit die ich da sehe ist, das komplette File laden, meinetwegen zelienweise in einen array packen, das betreffende Arrayfeld löschen und dann wieder in die Datei (über)schreiben, also nicht anhängen.
Grüße
Holger
Die einzige Möglichkeit die ich da sehe ist, das komplette File laden, meinetwegen zelienweise in einen array packen, das betreffende Arrayfeld löschen und dann wieder in die Datei (über)schreiben, also nicht anhängen.
Hmmm, hab's mir schon fast gedacht, ähnlich ist meine Möglichkeit ja auch schon, ich suche im Prinzip nach allen IDs, die nicht-gleich 2 sind und überschreibe dann.
Dachte man könnte mit irgendeiner Funktion "gezielt" ID 2 löschen. Daraus hätte sich auch wahrscheinlich die Möglichkeit ergeben, Datensätze zu editieren, btw. den alten zu löschen und einen neuen anzuhängen
Naja, Danke trotzdem ;-)
Also
file ist:
1|bla|bla|blup
2|hm|bla|hm
3|xyz|abc|cde
Dann in der PHP schreibst du:
<?
$array = file("dateiname.txt");
$id_zum_loeschen = 2;
foreach($array as $v) {
$teile = explode("|", $v);
if($teile[0] != $id_zum_loeschen) {
$neu .= $v;
}
}
$fp = fopen("dateiname.txt", "w+");
fwrite($fp, $neu);
fclose($fp);
?>