Advertisement
Guest User

Untitled

a guest
Jun 24th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.45 KB | None | 0 0
  1. <table cellpadding="0" cellspacing="0" border="0">
  2.     <tr>
  3.         <th>Klasse</th>
  4.         <th>Stunde</th>
  5.         <th>Lehrer</th>
  6.         <th>Fach</th>
  7.         <th>Raum</th>
  8.         <th>Vertretungslehrer</th>
  9.         <th>Vertretungsraum</th>
  10.     </tr>
  11. <?php
  12. function dateiausgabe ($dateiname = "2010_10_27.txt")
  13. {
  14.     error_reporting (0);
  15.    
  16.     $handle = fopen ($dateiname, "r");
  17.     $bOperate = 0;
  18.     $aSubjects = array (
  19.                 'Mat'       =>  'Mathe',
  20.                 'Bio'       =>  'Biologie',
  21.                 'Kun'       =>  'Kunst',
  22.                 'Sp'        =>  'Sport',
  23.                 'Deu'       =>  'Deutsch',
  24.                 'Frz'       =>  'Französisch',
  25.                 'Lat'       =>  'Latein',
  26.                 'Rel'       =>  'Religion'
  27.             );
  28.    
  29.     while (!feof ($handle))
  30.     {
  31.         $buffer = fgets ($handle, 4096); // Zeilenweise die Datei einlesen
  32.        
  33.         // -#-#-#-#-##-#-#-#-#-#-#-#-#-#-#-#-#-#-
  34.         // Bis zum ersten Eintrag springen
  35.         // Suche nach: (Zahl [1-10]) + (Buchstabe [grhf]) + (Zahl [1-10])
  36.         if (!$bOperate)
  37.             $bOperate = preg_match ("/([0-9])([grhf])([0-9])/i", substr ($buffer, 0, 3)) ? 1 : 0;
  38.         if ($bOperate)
  39.         {
  40.             //Auf Sub-Daten prüfen
  41.             if (substr ($buffer, 0, 1) == " ")
  42.             {
  43.                 //Stunde einlesen
  44.                 preg_match ("/ ([0-9])\t/i", $buffer, &$nHour);
  45.                 //Buffer zur Erleichterung des Auslesens
  46.                 //um das gerade ausgelesene verkürzen
  47.                 $buffer = substr ($buffer, strlen ($nHour[0]));
  48.                 //Lehrer auslesen
  49.                 //Und anschließend _ durch Leerzeichen ersetzen
  50.                 preg_match ("/([^ ]+)/i", $buffer, &$strTeacher);
  51.                 $strTeacher[0] = str_replace ("_", " ", $strTeacher[0]);
  52.                 //Buffer erneut verkürzen
  53.                 //Siehe oben
  54.                 $buffer = trim (substr ($buffer, strlen ($strTeacher[0])));
  55.                 //Fach auslesen und evaluieren
  56.                 preg_match ("/([a-zA-Z]+)/i", $buffer, &$strSubject);
  57.                 $strSubject[0] = array_key_exists ($strSubject[0], $aSubjects) ? $aSubjects[$strSubject[0]] : $strSubject[0];
  58.                 //Buffer wieder verkürzen
  59.                 //Siehe oben
  60.                 $buffer = substr ($buffer, strlen ($strSubject[1]));
  61.                 //Raum auslesen
  62.                 preg_match ("/(.+)\t==>/i", $buffer, &$strRoom);
  63.                 $strRoom[0] = str_replace ("==>", "", $strRoom[0]);
  64.                 //Buffer wieder verkürzen
  65.                 //Siehe oben
  66.                 $buffer = trim (str_replace ("==>", "", substr ($buffer, strlen ($strRoom[0]))));
  67.                 //Vertretungslehrer auslesen
  68.                 //Falls die Stunden ausfallen
  69.                 if (substr ($buffer, 0, 5) == "-----")
  70.                 {
  71.                     $strSupplyTeacher[0] = "FREI";
  72.                     $strSupplyRoom[0] = "FREI";
  73.                 }
  74.                 //Falls die Stunden vertreten werden
  75.                 else
  76.                 {
  77.                     preg_match ("/([a-zA-Zßäöüóôâáý_.]+)/i", $buffer, &$strSupplyTeacher);
  78.                     //Buffer wieder verkürzen
  79.                     //Siehe oben
  80.                     $buffer = trim (substr ($buffer, strlen ($strSupplyTeacher[0])));
  81.                     preg_match ("/[a-zA-Z]+[0-9]+/i", $buffer, &$strSupplyRoom);
  82.                     //Evaluieren des Vertretungsraums
  83.                     if (empty ($strSupplyRoom[0]))
  84.                         $strSupplyRoom[0] = "Klassenraum ($strRoom[0])";
  85.                 }
  86.                 //Ausgeben der Daten
  87.                 echo
  88.                     "
  89.                     <tr>
  90.                         <td>$strClass[0]</td>
  91.                         <td>$nHour[0]</td>
  92.                         <td>$strTeacher[0]</td>
  93.                         <td>$strSubject[0]</td>
  94.                         <td>$strRoom[0]</td>
  95.                         <td>$strSupplyTeacher[0]</td>
  96.                         <td>$strSupplyRoom[0]</td>
  97.                     </tr>
  98.                     ";
  99.             }
  100.             //Falls die Zeile nicht als Sub-Daten erkannt werden
  101.             //die Zeile als Klassen-Definition behandeln.
  102.             else
  103.             {
  104.                 //Klasse einlesen
  105.                 //Wieder nach dem altbekannten Suchmuster von oben.
  106.                 preg_match ("/([0-9])([grhf])([0-9])/i", $buffer, &$strClass);
  107.             }
  108.         }
  109.         // -#-#-#-#-##-#-#-#-#-#-#-#-#-#-#-#-#-#-
  110.     }
  111.     fclose ($handle);
  112. }
  113.  
  114. dateiausgabe ();
  115. ?>
  116. </table>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement