fastix®: CSV Import/Noteneintragen -> Moodle

Beitrag lesen

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