Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. error_reporting(-1);
  4. ini_set('display_errors', true);
  5.  
  6.  
  7. $html = <<<HTML
  8. <!--- Header --->
  9.            
  10.  
  11.         <!--- Klasse, Datum, Überschrift --->        
  12.                 <font size="5" face="Arial">
  13.                     <B>[ÜBERSCHRIFT] / [TAG] [WOCHENART]</B>
  14.                 </font>
  15.             <BR>
  16.                 <font size="6" face="Arial">
  17.                     [Klasse]
  18.                 <font size="5" face="Arial">
  19.                     [Lehrer]
  20.                 </font>
  21.             <BR>
  22.  
  23.         <!--- Tabelle --->        
  24.                 <TABLE border="3" rules="all" bgcolor="#E7E7E7" cellpadding="1" cellspacing="1">
  25.                 <!--- Tabellenkopf --->            
  26.                     <TR>
  27.                         <TD align=center>
  28.                             <font size="3" face="Arial">
  29.                                 <B>Klasse(n)</B>
  30.                             </font>
  31.                         </TD>
  32.                         <TD align=center>
  33.                             <font size="3" face="Arial">
  34.                                 Stunde
  35.                             </font>
  36.                         </TD>
  37.                         <TD align=center>
  38.                             <font size="3" face="Arial">
  39.                                 <B>Fach</B>
  40.                             </font>
  41.                         </TD>
  42.                         <TD align=center>
  43.                             <font size="3" face="Arial">
  44.                                 <B>Raum</B>
  45.                             </font>
  46.                         </TD>
  47.                         <TD align=center>
  48.                             <font size="3" face="Arial">
  49.                                 (Fach)
  50.                             </font>
  51.                         </TD>
  52.                         <TD align=center>
  53.                             <font size="3" face="Arial">
  54.                                 Art
  55.                             </font>
  56.                         </TD>
  57.                         <TD align=center>
  58.                             <font size="3" face="Arial">
  59.                             Vertretungs-Text
  60.                             </font>
  61.                         </TD>
  62.                     </TR>
  63.         <!--- Tabellen Inhalt | je nach dem was alles vertreten wird wird eine neue Zeile mit dem jeweiligen Inhalt erstellt --->
  64.                     <TR>
  65.                         <TD align=center>
  66.                             <font size="3" face="Arial">
  67.                                 <B>[Klasse]</B>
  68.                             </font>
  69.                         </TD>
  70.                         <TD align=center>
  71.                             <font size="3" face="Arial">
  72.                                 [Stunde]
  73.                             </font>
  74.                         </TD>
  75.                         <TD align=center>
  76.                             <font size="3" face="Arial">
  77.                                 <B>[Fach]</B>
  78.                             </font>
  79.                         </TD>
  80.                         <TD align=center>
  81.                             <font size="3" face="Arial">
  82.                             <B>[Raum]</B>
  83.                             </font>
  84.                         </TD>
  85.                         <TD align=center>
  86.                             <font size="3" face="Arial">
  87.                                 [Ersatz-Fach]
  88.                             </font>
  89.                         </TD>
  90.                         <TD align=center>
  91.                             <font size="3" face="Arial">
  92.                                 [Art]
  93.                             </font>
  94.                         </TD>
  95.                         <TD align=center>
  96.                             <font size="3" face="Arial">
  97.                                 [Vertretungstext]
  98.                             </font>
  99.                         </TD>    
  100.                     </TR>
  101.                 </TABLE>
  102.  
  103. <!--- Footer --->
  104.  
  105.  
  106. HTML;
  107.  
  108.  
  109. $domDocument = new DOMDocument();
  110. @$domDocument->loadHTML($html);
  111. /*
  112.  * wenn der HTML Code als Datei vorliegt dann
  113.  * $fileName = __DIR__.'/vertretungsplan.html';
  114.  * @$domDocument->loadHTMLFile($fileName);
  115.  *
  116.  */
  117.  
  118. $xpath = new DOMXPath($domDocument);
  119.  
  120. $titleElement = $xpath->query("//font[@size='5']/b");
  121.  
  122. if($titleElement->length > 0){
  123.     $title = $titleElement->item(0)->nodeValue;
  124.    var_dump($title);
  125. }
  126.  
  127. $tableRows = $xpath->query('//tr');
  128.  
  129. $result = [];
  130. foreach ($tableRows as $number => $tableRow) {
  131.  
  132.     if ($number === 0) {
  133.         //Weil die Tabelle kein TH für Table Head nutzt, müssen wir die erste Zeile übersringen
  134.         $tableData = $xpath->query('./td', $tableRow);
  135.         $tableCaptions = [];
  136.         /**
  137.          * @var DOMElement $datum
  138.          */
  139.         foreach ($tableData as $datum) {
  140.             $tableCaptions[] = trim($datum->nodeValue);
  141.         }
  142.         continue;
  143.     }
  144.     $tableData = $xpath->query('./td', $tableRow);
  145.     $tableValues = [];
  146.     /**
  147.      * @var DOMElement $datum
  148.      */
  149.     foreach ($tableData as $index => $datum) {
  150.         $caption = $tableCaptions[$index];
  151.         $tableValues[$caption] = trim($datum->nodeValue);
  152.     }
  153.     $result[sprintf('%d. Vertretung',$number)] = $tableValues;
  154. }
  155.  
  156. var_dump($result);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement