Moin!
<?php
/*
$filename: Name der CSV-Datei
$trenner : Trenner der Datensätze
$remark : Kennzeichen für Kommentarzeilen
$maxCols : Wie viele Spalten sollen maximal(!) eingelesen werden (Vorteil: in der letzten Spalte kann dann der Trenner unmaskiert stehen)
*/
function fastixCsvToArray($filename, $trenner=';', $remark='#', $maxCols=3) {
$dummy=fastixCheckFile($filename,'r');
$ar=array();
$lines = file($filename);
foreach ($lines as $line) {
$line=trim($line);
if (isset($line[0]) && $remark != $line[0]) {
$arLineTemp=explode($trenner, $line, $maxCols);
$arLine=array();
foreach ($arLineTemp as $elem) {
$arLine[]=trim($elem);
}
$ar[]=$arLine;
}
}
return $ar;
}
function fastixCsvToAssocArray($filename, $trenner=';', $remark='#', $maxCols=3) {
#die($filename);
$dummy=fastixCheckFile($filename,'r');
$ar=array();
$lines = file($filename);
foreach ($lines as $line) {
$line=trim($line);
if ($remark != $line[0]) {
$arLineTemp=explode($trenner, $line, $maxCols);
$arLine=array();
for ($i=0;$i < $maxCols; $i++) {
$arLineTemp[$i]=trim($arLineTemp[$i]);
if ($i == 0) {
$assoc=$arLineTemp[$i];
} else {
if ($maxCols == 2) {
$ar[$assoc]=$arLineTemp[$i];
} else {
$ar[$assoc][$i]=$arLineTemp[$i];
}
}
}
}
}
return $ar;
}
function fastixCheckFile($filename, $right='r') {
/*
Beendet Script mit Fehlermeldung, wenn Datei nicht vorhanden oder die erforderlichen Rechte fehlen:
r: lesen
w: schreiben
*/
if(!is_file($filename)) {
die ('Fatal: '.$filename.' ist keine Datei!!!'."\n");
}
if(!is_readable($filename)) {
die ('Fatal: '.$filename.' ist nicht lesbar!'."\n");
}
if ('w'==strtoupper(substr($right,1))) {
die ('Fatal: '.$filename.' ist nicht schreibbar!'."\n");
}
return 0;
}
?>
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix