Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <table cellpadding="0" cellspacing="0" border="0">
- <tr>
- <th>Klasse</th>
- <th>Stunde</th>
- <th>Lehrer</th>
- <th>Fach</th>
- <th>Raum</th>
- <th>Vertretungslehrer</th>
- <th>Vertretungsraum</th>
- </tr>
- <?php
- function dateiausgabe ($dateiname = "2010_10_27.txt")
- {
- error_reporting (0);
- $handle = fopen ($dateiname, "r");
- $bOperate = 0;
- $aSubjects = array (
- 'Mat' => 'Mathe',
- 'Bio' => 'Biologie',
- 'Kun' => 'Kunst',
- 'Sp' => 'Sport',
- 'Deu' => 'Deutsch',
- 'Frz' => 'Französisch',
- 'Lat' => 'Latein',
- 'Rel' => 'Religion'
- );
- while (!feof ($handle))
- {
- $buffer = fgets ($handle, 4096); // Zeilenweise die Datei einlesen
- // -#-#-#-#-##-#-#-#-#-#-#-#-#-#-#-#-#-#-
- // Bis zum ersten Eintrag springen
- // Suche nach: (Zahl [1-10]) + (Buchstabe [grhf]) + (Zahl [1-10])
- if (!$bOperate)
- $bOperate = preg_match ("/([0-9])([grhf])([0-9])/i", substr ($buffer, 0, 3)) ? 1 : 0;
- if ($bOperate)
- {
- //Auf Sub-Daten prüfen
- if (substr ($buffer, 0, 1) == " ")
- {
- //Stunde einlesen
- preg_match ("/ ([0-9])\t/i", $buffer, &$nHour);
- //Buffer zur Erleichterung des Auslesens
- //um das gerade ausgelesene verkürzen
- $buffer = substr ($buffer, strlen ($nHour[0]));
- //Lehrer auslesen
- //Und anschließend _ durch Leerzeichen ersetzen
- preg_match ("/([^ ]+)/i", $buffer, &$strTeacher);
- $strTeacher[0] = str_replace ("_", " ", $strTeacher[0]);
- //Buffer erneut verkürzen
- //Siehe oben
- $buffer = trim (substr ($buffer, strlen ($strTeacher[0])));
- //Fach auslesen und evaluieren
- preg_match ("/([a-zA-Z]+)/i", $buffer, &$strSubject);
- $strSubject[0] = array_key_exists ($strSubject[0], $aSubjects) ? $aSubjects[$strSubject[0]] : $strSubject[0];
- //Buffer wieder verkürzen
- //Siehe oben
- $buffer = substr ($buffer, strlen ($strSubject[1]));
- //Raum auslesen
- preg_match ("/(.+)\t==>/i", $buffer, &$strRoom);
- $strRoom[0] = str_replace ("==>", "", $strRoom[0]);
- //Buffer wieder verkürzen
- //Siehe oben
- $buffer = trim (str_replace ("==>", "", substr ($buffer, strlen ($strRoom[0]))));
- //Vertretungslehrer auslesen
- //Falls die Stunden ausfallen
- if (substr ($buffer, 0, 5) == "-----")
- {
- $strSupplyTeacher[0] = "FREI";
- $strSupplyRoom[0] = "FREI";
- }
- //Falls die Stunden vertreten werden
- else
- {
- preg_match ("/([a-zA-Zßäöüóôâáý_.]+)/i", $buffer, &$strSupplyTeacher);
- //Buffer wieder verkürzen
- //Siehe oben
- $buffer = trim (substr ($buffer, strlen ($strSupplyTeacher[0])));
- preg_match ("/[a-zA-Z]+[0-9]+/i", $buffer, &$strSupplyRoom);
- //Evaluieren des Vertretungsraums
- if (empty ($strSupplyRoom[0]))
- $strSupplyRoom[0] = "Klassenraum ($strRoom[0])";
- }
- //Ausgeben der Daten
- echo
- "
- <tr>
- <td>$strClass[0]</td>
- <td>$nHour[0]</td>
- <td>$strTeacher[0]</td>
- <td>$strSubject[0]</td>
- <td>$strRoom[0]</td>
- <td>$strSupplyTeacher[0]</td>
- <td>$strSupplyRoom[0]</td>
- </tr>
- ";
- }
- //Falls die Zeile nicht als Sub-Daten erkannt werden
- //die Zeile als Klassen-Definition behandeln.
- else
- {
- //Klasse einlesen
- //Wieder nach dem altbekannten Suchmuster von oben.
- preg_match ("/([0-9])([grhf])([0-9])/i", $buffer, &$strClass);
- }
- }
- // -#-#-#-#-##-#-#-#-#-#-#-#-#-#-#-#-#-#-
- }
- fclose ($handle);
- }
- dateiausgabe ();
- ?>
- </table>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement