/**
Beispiel zum Vergleich von Versionsnummern, welche in CSV-Dateien hinterlegt sind
@version 1.0.2
**/
/*
Hier lesen wir die Datei 1 aus, und zerlegen das ganze mal in
ein Array (jede Zeile ein Element)
*/
$buffer="";
$datei=fopen("1.txt", "r") or die("Kann Datei 1 nicht öffnen!");
while(!feof($datei)) {
$buffer.=fgets($datei, 1024);
}
fclose($datei);
$string1=explode("\n", $buffer);
/*
Hier lesen wir die Datei 2 aus, und zerlegen das ganze mal in
ein Array (jede Zeile ein Element)
*/
$buffer="";
$datei=fopen("2.txt", "r") or die("Kann Datei 2 nicht öffnen!");
while(!feof($datei)) {
$buffer.=fgets($datei, 1024);
}
fclose($datei);
$string2=explode("\n", $buffer);
/*
Jetzt müssen wir Zeile für Zeile umwandeln und die Felder rausholen
Dann erstellen wir noch ein Array à la
$programme["firefox"]="3.0.3;
$programme["test"]="1.1.3;
Dies passiert vorerst nur mal mit den Inhalten der ersten Datei (Hier noch keine
Überprüfungen, da das ja die ersten Versionsdaten für das Programm sind.
*/
for($i=0; $i<count($string1); $i++) {
$buffer=explode(";", $string1[$i]);
$programme[$buffer[0]]=$buffer[1];
}
/*
Hier zerlegen wir dann auch den Inhalt der 2ten Datei und benutzen die Funktion
version_compare() um die Versionsnummern zu vergleichen.
Wenn die neuen Daten eine höhere Versionsnummer enthalten, dann werden die alten
überschrieben.
*/
for($i=0; $i<count($string2); $i++) {
$buffer=explode(";", $string2[$i]);
if($programme[$buffer[0]] != null) { // Programm schon drinnen
if(version_compare($programme[$buffer[0]], $buffer[1], "<")) { // Neuere Version
$programme[$buffer[0]]=$buffer[1];
}
}
}
var_dump($programme); // Debug-Ausgabe