Jörg Reinholz: Daten aus .txt Datei in eine html Tabelle schreiben

Beitrag lesen

Klar! So lange die Datei mit den Daten eine kleine ist würde ich wie 1UnitedPower auch PHP und die Verwendung von fgetcsv vorschlagen.

Sollte die Textdatei aber mal (sehr viel) größer werden, dann würde ich dazu neigen, diese durch awk zu bearbeiten, dass für genau diese Fälle als "Spezialist" erschaffen wurde.

Im Übrigen ließe sich mit einem Befehl

~> awk -d" " -f test.awk < test.txt > tabelle.html.part_01  

und einem nachfolgendem

~> cat tabelle.html.part.01 tabelle.html.part_02 tabelle.html.part_03 > tabelle.html  

eine statische HTML-Seite mit der Tabelle und dem vorherigen (part_01) und nachfolgendem (part_03) in einer Unix-Shell erstellen, was bei großen Serverlasten durch viele Abrufe einiges an Prozessorzeit spart. Zu dem lässt sich wahrscheinlich auch noch Einiges automatisieren, die Datei sieht ja nicht so aus als stamme die aus einem informationstechnischen Vakuum...

(g)awk und auch cat sind Bestandteil der Unix-Tools für Windows.

Datei: test.txt:

actual_thb0_temp_c 25.2  
actual_thb0_dew_c 7.8  
actual_thb0_cloudheight_m 2175  
alltime_utcdate 20130412160503  
day1_thb0_temp_c 24.4

Datei: test.awk:

BEGIN {  
  print "<table id='foo' class='bar'>"  
}  
  
{  
  print "    <tr>";  
  print "        <td class='text'>"$1"</td>"  
  print "        <td class='zahl'>"$2"</td>"  
  print "    </tr>"  
}  
  
END {  
   print "</table>";  
}

Datei test.php:

<html>  
<head>  
    <title>Hurraaaa!</title>  
<body>  
<?php  
system('awk -d" " -f test.awk < test.txt');  
?>  
</body>  
</html>

Ergebnis:

<html>  
<head>  
    <title>Hurraaaa!</title>  
<body>  
<table id='foo' class='bar'>  
    <tr>  
        <td class='text'>actual_thb0_temp_c</td>  
        <td class='zahl'>25.2</td>  
    </tr>  
    <tr>  
        <td class='text'>actual_thb0_dew_c</td>  
        <td class='zahl'>7.8</td>  
    </tr>  
    <tr>  
        <td class='text'>actual_thb0_cloudheight_m</td>  
        <td class='zahl'>2175</td>  
    </tr>  
    <tr>  
        <td class='text'>alltime_utcdate</td>  
        <td class='zahl'>20130412160503</td>  
    </tr>  
    <tr>  
        <td class='text'>day1_thb0_temp_c</td>  
        <td class='zahl'>24.4</td>  
    </tr>  
</table>  
</body>  
</html>

Jörg Reinholz