Hello,
wie kann ich als trennzeichen einen ; zulassen und gleichzeit verbieten, dass ; in foöge eines leerzeichens verbieten als trennzeichen...
Das funktioniert anders:
Erstmal die Begriffe:
Allgemeine EDV PHP Bedeutung
-------------- ----------- ---------
Line-End Line-End Zeichen, dass zur Trennung von Datensätzen (Zeilen) dient
Separator Delimiter Zeichen, dass zur Feldtrennung benutzt wird
Delimiter Enclosures Zeichen, dass zur Feldbegrenzung benutzt wird
Das Standard-Data Format (ungefähr 25 Jahre oder älter) sprach von
import from ... sdf seperated by ";" delimited with """
Wenn Du nun also Daten im CSV-Format abspeichern willst, musst Du die Felder folgendermaßen aufbauen:
## Feldbegrenzer innerhalb der Daten maskieren durch Doppelung
foreach($_rec as $key => $field)
{
$_rec[$key] = str_replace($delimiter, $delimiter.$delimiter, $field);
}
## Felder zu einem Datensatz zusammenbauen
$rec_str = $delimiter.implode($delimiter.$separator.$delimiter,$_rec).$delimiter;
Ich habe hier die Standardbegriffe und nicht die aus PHP verwendet.
Wenn Du dann später die Daten wieder einliest, geht das einfach mit
$_data = fgetcsv($fh, $max_rec_len, $separator, $delimiter);
in den Daernsätzen können dann alle Zeichen drinstehen, auch Zeilenende-Zeichen, Feldbegrenzer oder Feldtrenner. Allerdings läßt sich eine solche Datei dan nur noch sinnvoll mittels fgetcsv() lesen und nicht mehr mit fget()
Wenn man allerdings bereits versaute Daten wieder lesbar machen will, muss man sicher einen erheblich größeren Aufwand treiben.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau