Hello,
eine echte CSV-Datei kann man nicht mit file() einlesen, sondern muss sie zeilenweise mit fgetcsv() einlesen. Das liegt an der Art der Zeilenbegrenzung.
In einer CSV-Datei können auch innerhalb der Felder (Spalten) Zeilenschaltungszeichen enthalten sein. Die Felder müsen dafür nur mit Delimitern (PHP nennt das Enclosure) begrenzt werden. Um auch Delimiter innerhalb der feldwerte benutzen zu können, müssen die durch Doppelung maskiert werden.
Soviel erstmal zum Umgang mit CSV-Dateien.
Da man nun sowieso die Datei "zeilenweise" lesen muss, kann man doch locker mitzählen. Man liest eben nur soviele Sätze ein, bis entweder EOF erreicht ist, oder die maximale Anzahl erreicht ist.
Ich habe mir Dein Script nicht weiter angeschaut, weil es eine Zumutung ist, das zu lesen:
1. wegen der Formatierung
2. weil es für die Fragestellung mindestens 70% irrelevante Dinge enthält.
Wenn Du das Script also auf das Wensentliche für die Fragestellung reduziert und kommentiert hast, dann schauen wir nochmal.
Außerdem versuche formatierte Ausgabe und Datenbeschaffung und -manipulation strikt voneienander zu trennen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau