Meine Idee wäre, erstmal die ersten 100 Zeilen zu durchlaufen und dadurch die "passende Anzahl" an Delimitern festzulegen. Anschließend würde ich dann neu anfangen und alle Zeilen durchlaufen.
// Zählen, ob Anzahl der Delimiter je Zeile identisch ist
$myCsvArray = explode("\n",file_get_contents($csv_datei));
$zahl5 = $maxCount = 0;
foreach($myCsvArray AS $myEinzelZeile) {
$zahl5++;
$myCount = substr_count($myEinzelZeile,'|');
if($myCount > $maxCount) {
$maxCount = $myCount;
}
if($zahl5 == 100) {
break;
}
}
$myErforderlicheDelimiter = $maxCount;
$myZeile = 0;
foreach($myCsvArray AS $myEinzelZeile) {
$myZeile++;
if(substr_count($myEinzelZeile,'|') != $myErforderlicheDelimiter) {
echo("Fehlerhafte Anzahl Delimiter in Zeile ".$myZeile."");
}
}
Hast Du (oder natürlich auch jeder andere) eine bessere Idee?
Pit