Script zur Anzeige der Waldbrandwarnstufe

Hilfe zu php Wetterscripten
Antworten
Benutzeravatar
Limo198
Beiträge: 60
Registriert: Do 19. Jan 2012, 22:08
Wohnort: Altmersleben
Kontaktdaten:

Script zur Anzeige der Waldbrandwarnstufe

Beitrag von Limo198 »

Hallo Leute.

Ich nutze seid langem ein Script welches Michael Reuter mir mal geschrieben hat. Es liest die Tabelle der Seite http://www.sachsen-anhalt.de/index.php?id=13439 aus und gibt mir eine Grafik für meine Feuerwehrseite aus (http://www.ffw-altmersleben.de. Die Im Kopf der Seite wo nun steht Datei konnte nicht geladen werden.

Es hat schon des öfteren Änderungen der Sachsen-Anhalt Seite gegeben und ich konnte das Script immer anpassen, doch jetzt stehe ich absolut auf dem Schlauch. Ich finde nicht den Grund warum es jetzt nicht fun ktioniert.

Vielleicht findet Ihr einen Fehler?

Danke schonmal.

Hier das Script:

Code: Alles auswählen

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body><?php
				$waldbrandlesen ='http://www.sachsen-anhalt.de/LPSA/index.php?id=13439';  //     öffnen und lesen der Seite
				$waldbrand = file($waldbrandlesen);  // Inhalt der Datei lesen und an ein Array übergeben. Hinweis  bei einem Fehler liefert File den Wert False!
				
				$zaehler1 = (count($waldbrand)); // Zeilen der Datei  werden ermittelt
				//print "$zaehler1<br>"; // Zur Kontrolle wieviele Zeilen die Datei enthält.
				
		if(count($waldbrand)>10)   // wenn die Datei mehr als 10 Zeilen hat wird abgefragt ob die Suchtexte enthalten sind.
					{ 		
$i = 1;
$hm = $zaehler1-1; //Alle Zeilen der Datei auslesen
$kreisname = "Anhalt-Bitterfeld, nördl. der Elbe"; // Suchstring eingeben Hinweis!! Aufgrund der variablen Datenstruktur muß die Waldbrand kennziffer von der nächsten Stadt aus ermittelt werden und das ganze dann zurückgerechnet werden.

// Übergabe der Werte an ein Array damit man flexibel bleibt was weitere Auswertungen betrifft. Den Code in und nach der While Schleife müßt Ihr halt anpassen je nach dem was Ihr vorhabt.
while($i < $hm){  //Zeilenweise Suche nach dem Suchbegriff
$waldbrandtabelle=$waldbrand[$i];
if (strpos($waldbrandtabelle,$kreisname)){ // Text wird gesucht.
					$text=$waldbrand[$i];
					}
$i++; // wiederholen bis der Suchbegriff gefunden wurde oder das Ender der Datei erreicht wurde.
}
}
		else {
		echo '<p>Daten konnten nicht geladen werden</p>'; // Falls die Seite nicht erreichbar ist.
					}
$meinString = $text;
$findMich  = $kreisname;
$pos = strpos($meinString, $findMich); // Die Position des Suchstrings wird ermittelt.
$wert = ($pos -48); // hier wird die Zahl anhand der Position errechnet. Achtung bei anderen Städten kann es sein das man 49 eintragen muß. Der Grund warum hier zurückgerechnet wird ist das in der zweiten Tabelle manchmal noch Werte vorzufinden sind.
$kennziffer = substr($text, $wert, 1);
$zahl = (int)$kennziffer;
if ($pos === false) {
   echo "Daten konnten nicht geladen werden";
} 
else {
   // echo "Waldbrandstufe $kennziffer <br><br>"; // Textausgabe der Waldbrandkennziffer 
   //echo $text; // dient nur der Kontrolle es erfolgt die Ausgabe der ganzen Tabelle
   
 if ($zahl === 0) {
   echo '<p><img border="0" src="http://www.ffw-altmersleben.de/titel/waldbrand0.gif" width="450" height="45"></p>';
} 
		elseif ($zahl === 1) {
		echo '<p><img border="0" src="http://www.ffw-altmersleben.de/titel/waldbrand.gif" width="450" height="45"></p>';
}
		elseif ($zahl === 2) {
		echo '<p><img border="0" src="http://www.ffw-altmersleben.de/titel/waldbrand2.gif" width="450" height="45"></p>';
} 
		elseif ($zahl === 3) {
		echo '<p><img border="0" src="http://www.ffw-altmersleben.de/titel/waldbrand3.gif" width="450" height="45"></p>';
}
		elseif ($zahl === 4) {
		echo '<p><img border="0" src="http://www.ffw-altmersleben.de/titel/waldbrand4.gif" width="450" height="45"></p>';
} 
   }
?>
</body>
</html>
Davis Vantage VP2 plus aktiv; Bodenmessfeld; TOA Blitzortung; Erschütterungssensor; Radioaktivitätsmessung; E-Feldmessung

Bild
Michael
Beiträge: 2515
Registriert: Fr 8. Jan 2010, 20:30

Re: Script zur Anzeige der Waldbrandwarnstufe

Beitrag von Michael »

Limo198 hat geschrieben:Ich finde nicht den Grund warum es jetzt nicht fun ktioniert.

Vielleicht findet Ihr einen Fehler?
Die Fragen per Script den Browser ab. Da mit file() keine Browserangaben mitgeliefert werden, wird nur ein Teil der Seite dargestellt.
Damit wird verhindert, dass nicht mehr so einfach per Script die Daten von der Seite gesaugt werden können.

Du kannst also das Script in die Tonne treten und den Deckel zumachen.
Gruß

Michael
Benutzeravatar
Limo198
Beiträge: 60
Registriert: Do 19. Jan 2012, 22:08
Wohnort: Altmersleben
Kontaktdaten:

Re: Script zur Anzeige der Waldbrandwarnstufe

Beitrag von Limo198 »

Genau diese Antwort wollte ich nicht. :(


Gesendet via Tapatalk über mein iPhone
Davis Vantage VP2 plus aktiv; Bodenmessfeld; TOA Blitzortung; Erschütterungssensor; Radioaktivitätsmessung; E-Feldmessung

Bild
webworker
Beiträge: 67
Registriert: Sa 23. Apr 2011, 07:07
Wohnort: Nettersheim
Kontaktdaten:

Re: Script zur Anzeige der Waldbrandwarnstufe

Beitrag von webworker »

Kleiner Ansatz zur Abfrage der Waldbrandwarnstufe, den ich selbst abfrage und bisher noch keine Probleme hatte:

1. Abruf der aktuellen Warnkarte x-mal täglich (Abhängig von Monat und Region) mit Curl via Cronjob oder direkter Call aus dem Script
2. Prüfen der Farbe an X/Y-Koordinate der Warnkarte
3. Entsprechend der Farbe Vergabe des Stufenwertes und Eintrag in Datenbank/Textdatei
4. Beliebig häufiges Auslesen aus Datenbank/Textdatei ohne zusätzliche Last für DWD-Server etc.

Erweiterung mit den Vorhersagen wäre denkbar, ebenso Anpassung auf mehrere Regionen.

Script-Teile möchte ich hier nicht veröffentlichen, sende aber gerne den Abruf- und Klassifizierungsteil bei Interesse zu.

Funktioniert seit knapp 3 Jahren ohne jegliche Anpassung....
Rene


Wo ist der Regenschirm?


http://www.naturparkwetter.de - private Wetterstation Bouderath in der Eifel
Benutzeravatar
Limo198
Beiträge: 60
Registriert: Do 19. Jan 2012, 22:08
Wohnort: Altmersleben
Kontaktdaten:

Re: Script zur Anzeige der Waldbrandwarnstufe

Beitrag von Limo198 »

Geht wieder. ;)
Davis Vantage VP2 plus aktiv; Bodenmessfeld; TOA Blitzortung; Erschütterungssensor; Radioaktivitätsmessung; E-Feldmessung

Bild
Antworten