forked from dezeyer/dsbapi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfunctions.php
78 lines (76 loc) · 3.17 KB
/
functions.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
function parse_r($url, $link){
$dom = new DomDocument("1.0", "utf-8");
$dom->loadHTMLFile($url);
$dom->preserveWhiteSpace = true;
//get tables
$tables = $dom->getElementsByTagName('table');
$date = explode(" ", $dom->getElementsByTagName('div')[0]->nodeValue)[0];
$list = $tables[$tables->length - 1];
$rows = $list->getElementsByTagName("tr");
$daten = array();
$i = -1;
foreach($rows as $r){
$cnt = $r->getElementsByTagName("td")->length;
if($i==-1){
$i++;
continue;
}elseif($cnt == 1){
$i++;
if(!(strcmp($r->nodeValue, "-----") == 0)){
$daten[$i]["bezeichnung"] = substr($r->nodeValue, 0, 2);
$daten[$i]["lehrer"] = explode(")", explode("(", $r->nodeValue)[1])[0];
}else{
$daten[$i]["bezeichnung"] = $r->nodeValue;
$daten[$i]["lehrer"] = $r->nodeValue;
}
}else{
$tmp = array();
$tr = $r->getElementsByTagName("td");
$tmp["klasse"] = utf8_decode($tr[0]->nodeValue);
$tmp["stunde"] = utf8_decode($tr[1]->nodeValue);
$tmp["art"] = utf8_decode($tr[2]->nodeValue);
$tmp["fach"] = utf8_decode($tr[3]->nodeValue);
$tmp["raum"] = utf8_decode(str_replace("→", "=>", $tr[4]->nodeValue));
$tmp["text"] = utf8_decode($tr[5]->nodeValue);
$tmp["grund"] = utf8_decode($tr[6]->nodeValue);
$daten[$i]["vertretungen"][] = $tmp;
}
}
foreach($daten as $row){
$bez = $row["bezeichnung"];
$lehrer = $row["lehrer"];
mysqli_query($link, "INSERT INTO klasse (bezeichnung, lehrer) VALUES ('$bez', '$lehrer') ON DUPLICATE KEY UPDATE lehrer='$lehrer'");
foreach($row["vertretungen"] as $r){
$klasse = $bez;
$stunde = $r["stunde"];
$art = $r["art"];
$fach = str_replace("Â ", "---", $r["fach"]);
$raum = str_replace("Â ", "---", $r["raum"]);
$text = str_replace("Â ", "---", $r["text"]);
$grund = str_replace("Â ", "---", $r["grund"]);
echo $klasse."\n";
mysqli_query($link, 'INSERT INTO vertretung (id_klasse, stunde, datum, art, fach, raum, txt, grund, created_at) VALUES ((SELECT id FROM klasse WHERE bezeichnung = "'.$klasse.'" LIMIT 1), "'.$stunde.'", STR_TO_DATE(\''.$date.'\', \'%d.%m.%Y\'), "'.$art.'", "'.$fach.'", "'.$raum.'", "'.$text.'", "'.$grund.'", CURRENT_TIMESTAMP) ON DUPLICATE KEY UPDATE `art` = "'.$art.'", `fach` = "'.$fach.'", `raum` = "'.$raum.'", `txt` = "'.$text.'", `grund` = "'.$grund.'"') or die(mysqli_error($link));
$k = mysqli_affected_rows($link);
if($k==1){
echo "UPDATES!!!! WHOOP!"."\n";
mysqli_query($link, "INSERT INTO updates() VALUES ()");
}
}
}
if($tables->length > 2){
$motd = $tables[1];
$rows = $motd->getElementsByTagName("tr");
foreach($rows as $c => $r){
if($c==0)
continue;
mysqli_query($link, 'INSERT INTO day_message(datum, row, txt) VALUES (STR_TO_DATE(\''.$date.'\', \'%d.%m.%Y\'), '.($c-1).', "'.$r->nodeValue.'") ON DUPLICATE KEY UPDATE txt = "'.$r->nodeValue.'"') or die(mysqli_error($link));
$k = mysqli_affected_rows($link);
if($k==1){
echo "UPDATES!!!! WHOOP!"."\n";
mysqli_query($link, "INSERT INTO updates() VALUES ()");
}
}
}
}
?>