Hallo alle,
ich habe eine Wetterstation, die automatisch in bestimmten Abständen Wetterdaten an verschiedene Stellen in der Welt sendet. Gängige Dateien wie "csv" sind darunter. Nun habe ich ein Problem mit Weedal, einer Seite, die gesendete Daten von Wetterstationen aufbereitet und zur Verfügung für alle Interessierten darstellt.
Nun möchte ich, da Weedal mit der Software VWS (Virtual Weatherstation Ver13.01 v. Ambient) und den erstellten Dateien ein grosses Problem beim Darstellen hat, ein kleines PHP-Tool schreiben, welches die vorhandene CSV-Datei (data2.csv) ausliest und nur bestimmte Daten in eine TXT-Datei (weedaal.txt) schreibt, steuern tue ich die Intervallen des PHP-Tools dann über einen Cronjob meines Servers.
Bestimmte Daten sind nun:
----------------------------------------
akt. Temperatur in °C
Luftfeuchte in %
Luftdruck in hPa
Niederschlag seit 0 Uhr
Windstärke
Windrichtung
Uhrzeit der Datei
akt. Tag (Datum)
Veränderung des Luftdrucks innerhalb der letzten 3 h
----------------------------------------
Wie man oben sieht, muss die erste Zeile in der TXT-Datei frei bleiben.
Bisher habe ich herumprobiert, jedoch kein brauchbares Ergebnis zustande gebracht.
Der Inhalt einer solchen CSV-Datei sieht so aus:
----------------------------------------
1.01,2007,8,31,8,28,3,9,18,270,63,87,19.1,15.4,1012.00,0.00,0.00,0.00,0,15.4,87,0.0,0,0.0,0,0.00,0.0,0,15.2,20.3,18.3,13.3,0.000,0.6,-0.1,-0.07,0.6,0.6,0.6,0.00,0.00
----------------------------------------
Ich weiss inzwischen, dass es genau 41 Datensätze sind, ich jedoch nicht alle brauche, da Weedal nur 9 bestimmte braucht.
Man sieht z.B. in der CSV folgendes, die ich brauche:
2007,8,31 = aktuelles Datum
8,28 = aktuelle Zeit
usw.
Mir wäre schon geholfen, wenn ich die einzelnen "Arrays" herauslesen und darstellen könnte. Bischen habe ich mich mit fgetcsv und fopen beschäftigt, aber, wie gesagt, mit wenig Erfolg.
Hier mal mein gescheiterter Versuch:
Wäre für Hilfe echt dankbar, vielleicht hat ja sogar ein ähnliches Script schon fertig und ich könnte es nach den Bedürfnissen von Weedal modifizieren.
Gruss Olli
ich habe eine Wetterstation, die automatisch in bestimmten Abständen Wetterdaten an verschiedene Stellen in der Welt sendet. Gängige Dateien wie "csv" sind darunter. Nun habe ich ein Problem mit Weedal, einer Seite, die gesendete Daten von Wetterstationen aufbereitet und zur Verfügung für alle Interessierten darstellt.
Nun möchte ich, da Weedal mit der Software VWS (Virtual Weatherstation Ver13.01 v. Ambient) und den erstellten Dateien ein grosses Problem beim Darstellen hat, ein kleines PHP-Tool schreiben, welches die vorhandene CSV-Datei (data2.csv) ausliest und nur bestimmte Daten in eine TXT-Datei (weedaal.txt) schreibt, steuern tue ich die Intervallen des PHP-Tools dann über einen Cronjob meines Servers.
Bestimmte Daten sind nun:
----------------------------------------
akt. Temperatur in °C
Luftfeuchte in %
Luftdruck in hPa
Niederschlag seit 0 Uhr
Windstärke
Windrichtung
Uhrzeit der Datei
akt. Tag (Datum)
Veränderung des Luftdrucks innerhalb der letzten 3 h
----------------------------------------
Wie man oben sieht, muss die erste Zeile in der TXT-Datei frei bleiben.
Bisher habe ich herumprobiert, jedoch kein brauchbares Ergebnis zustande gebracht.
Der Inhalt einer solchen CSV-Datei sieht so aus:
----------------------------------------
1.01,2007,8,31,8,28,3,9,18,270,63,87,19.1,15.4,1012.00,0.00,0.00,0.00,0,15.4,87,0.0,0,0.0,0,0.00,0.0,0,15.2,20.3,18.3,13.3,0.000,0.6,-0.1,-0.07,0.6,0.6,0.6,0.00,0.00
----------------------------------------
Ich weiss inzwischen, dass es genau 41 Datensätze sind, ich jedoch nicht alle brauche, da Weedal nur 9 bestimmte braucht.
Man sieht z.B. in der CSV folgendes, die ich brauche:
2007,8,31 = aktuelles Datum
8,28 = aktuelle Zeit
usw.
Mir wäre schon geholfen, wenn ich die einzelnen "Arrays" herauslesen und darstellen könnte. Bischen habe ich mich mit fgetcsv und fopen beschäftigt, aber, wie gesagt, mit wenig Erfolg.
Hier mal mein gescheiterter Versuch:
PHP:
<?php
$row = 1; // Anzahl der Arrays
$handle = fopen ("data2.csv","r"); // Datei zum Lesen öffnen
while ( ($data = fgetcsv ($handle, 1000, ",")) !== FALSE ) { // Daten werden aus der Datei
// in ein Array $data gelesen
$num = count ($data); // Felder im Array $data
// werden gezählt
print "<br>\n";
$row++; // Anzahl der Arrays wird
// inkrementiert
for ($c=1; $c < $num; $c++) { // FOR-Schleife, um Felder
print $data[$c] . "<br>\n"; // des Arrays auszugeben
}
}
fclose ($handle);
?>
Wäre für Hilfe echt dankbar, vielleicht hat ja sogar ein ähnliches Script schon fertig und ich könnte es nach den Bedürfnissen von Weedal modifizieren.
Gruss Olli