jb-data.de/monitor/scripts/ajax/dwd.php
2025-08-11 22:23:30 +02:00

146 lines
5.4 KiB
PHP

<?php
/*
114713000 Stadt Leipzig Leipzig (Stadt) LXX
114729000 Kreis Leipzig Leipzig LLK
114730000 Kreis Nordsachsen Nordsachsen TOX
115002000 Stadt Halle (Saale) Halle/Saale HAL
116077000 Kreis Altenburger Land Altenburg. Land ABG
*/
$key=0;
$jsonp = file_get_contents("https://www.dwd.de/DWD/warnungen/warnapp/json/warnings.json");
$json = extract_unit($jsonp, 'warnWetter.loadWarnings(', ');');
$alert_list1 = json_decode($json, true);
$alert_list2 = json_decode($json, true);
//$alert_list3 = json_decode($json, true);
//$alert_list4 = json_decode($json, true);
//$alert_list5 = json_decode($json, true);
$relevant_alerts = $alert_list1["warnings"]["114713000"]; // leipzig Stadt
$relevant_prealerts = $alert_list1["vorabInformation"]["114713000"];
if($relevant_alerts == null) $relevant_alerts = array();
if($relevant_prealerts == null) $relevant_prealerts = array();
$relevant_alerts = array_merge($relevant_prealerts, $relevant_alerts);
//-------------------------------------------------------------------------------------
foreach($relevant_alerts as $alert) {
if ($alert['level']>1) {
$uww[$key]['name']=$alert['event'];
$uww[$key]['text']=$alert['headline'];
$uww[$key]['info']=$alert['description'];
$uww[$key]['stadt']=$alert['regionName'];
$uww[$key]['level']=$alert['level'];
$uww[$key]['start']=utf8_decode(date('d.m.Y H:i', substr($alert['start'], 0, 10)));
$uww[$key]['ende']=utf8_decode(date('d.m.Y H:i', substr($alert['end'], 0, 10)));
$key++;
}
}
//------------------------------------------------
$relevant_alerts2 = $alert_list2["warnings"]["114729000"]; // Kreis Leipzig
$relevant_prealerts2 = $alert_list2["vorabInformation"]["114729000"];
if($relevant_alerts2 == null) $relevant_alerts2 = array();
if($relevant_prealerts2 == null) $relevant_prealerts2 = array();
$relevant_alerts2 = array_merge($relevant_prealerts2, $relevant_alerts2);
foreach($relevant_alerts2 as $alert) {
if ($alert['level']>2) {
$uww[$key]['name']=$alert['event'];
$uww[$key]['text']=$alert['headline'];
$uww[$key]['info']=$alert['description'];
$uww[$key]['stadt']=$alert['regionName'];
$uww[$key]['level']=$alert['level'];
$uww[$key]['start']=utf8_decode(date('d.m.Y H:i', substr($alert['start'], 0, 10)));
$uww[$key]['ende']=utf8_decode(date('d.m.Y H:i', substr($alert['end'], 0, 10)));
$key++;
}
}
/*
//------------------------------------------------
$relevant_alerts3 = $alert_list3["warnings"]["115002000"]; // Halle
$relevant_prealerts3 = $alert_list3["vorabInformation"]["115002000"];
if($relevant_alerts3 == null) $relevant_alerts3 = array();
if($relevant_prealerts3 == null) $relevant_prealerts3 = array();
$relevant_alerts3 = array_merge($relevant_prealerts3, $relevant_alerts3);
foreach($relevant_alerts3 as $alert) {
if ($alert['level']>2) {
$uww[$key]['name']=$alert['event'];
$uww[$key]['text']=$alert['headline'];
$uww[$key]['info']=$alert['description'];
$uww[$key]['stadt']=$alert['regionName'];
$uww[$key]['level']=$alert['level'];
$uww[$key]['start']=utf8_decode(date('d.m.Y H:i', substr($alert['start'], 0, 10)));
$uww[$key]['ende']=utf8_decode(date('d.m.Y H:i', substr($alert['end'], 0, 10)));
$key++;
}
}
//------------------------------------------------
$relevant_alerts4 = $alert_list4["warnings"]["114730000"]; //Nordsachsen
$relevant_prealerts4 = $alert_list4["vorabInformation"]["114730000"];
if($relevant_alerts4 == null) $relevant_alerts4 = array();
if($relevant_prealerts4 == null) $relevant_prealerts4 = array();
$relevant_alerts4 = array_merge($relevant_prealerts4, $relevant_alerts4);
foreach($relevant_alerts4 as $alert) {
if ($alert['level']>2) {
$uww[$key]['name']=$alert['event'];
$uww[$key]['text']=$alert['headline'];
$uww[$key]['info']=$alert['description'];
$uww[$key]['stadt']=$alert['regionName'];
$uww[$key]['level']=$alert['level'];
$uww[$key]['start']=utf8_decode(date('d.m.Y H:i', substr($alert['start'], 0, 10)));
$uww[$key]['ende']=utf8_decode(date('d.m.Y H:i', substr($alert['end'], 0, 10)));
$key++;
}
}
//------------------------------------------------
$relevant_alerts5 = $alert_list5["warnings"]["116077000"]; //116077000 Altenburg
$relevant_prealerts5 = $alert_list5["vorabInformation"]["116077000"];
if($relevant_alerts5 == null) $relevant_alerts5 = array();
if($relevant_prealerts5 == null) $relevant_prealerts5 = array();
$relevant_alerts5 = array_merge($relevant_prealerts5, $relevant_alerts5);
foreach($relevant_alerts5 as $alert) {
if ($alert['level']>2) {
$uww[$key]['name']=$alert['event'];
$uww[$key]['text']=$alert['headline'];
$uww[$key]['info']=$alert['description'];
$uww[$key]['stadt']=$alert['regionName'];
$uww[$key]['level']=$alert['level'];
$uww[$key]['start']=utf8_decode(date('d.m.Y H:i', substr($alert['start'], 0, 10)));
$uww[$key]['ende']=utf8_decode(date('d.m.Y H:i', substr($alert['end'], 0, 10)));
$key++;
}
}
*/
//------------------------------------------------
if ($key>0) { $template->assign('uww', $uww); }
$template->assign('wert', $key);
$template->assign('time', time());
//------------------------------------------------
function extract_unit($string, $start, $end) {
$pos = stripos($string, $start);
$str = substr($string, $pos);
$str_two = substr($str, strlen($start));
$second_pos = stripos($str_two, $end);
$str_three = substr($str_two, 0, $second_pos);
$unit = trim($str_three); // remove whitespaces
return $unit;
}
$template->assign('content', 'tpl/ajax/dwd.tpl');
?>