Für ein kleines Problem sollte ein PHP Skript geschrieben werden.

Ausgangslage

Es existieren csv Dateien wie z.B. diese werte1.csv

Zeit,Sollwert,Istwert
16:01:00,1,1.1
16:06:00,2,2.1
16:11:00,3,3.0
16:16:00,4,4.2
16:21:00,5,5.1
16:26:00,6,6.9
16:31:00,7,7.1
16:36:00,8,8.5
16:41:00,9,4.3
16:46:00,10,5.2
16:51:00,11,1.3
16:56:00,12,2.3
17:01:00,13,3.2
17:06:00,14,4.4

Diese Werte sollte automatisch in ein html Format mit vorgegebenen header und footer kovertiert werden.
Dazu habe ich eine header.html erstellt

<h1 style="text-align: center;"><img src="./img/logo.png" alt="Firma Logo" width="60" height="60" />&nbsp;<strong>&nbsp; Coole Firma</strong></h1>


und dazu auch noch eine footer.html

<p>Durchgef&uuml;hrt am <span style="text-decoration: underline;">str_date </span></p>
<p>durch <span style="text-decoration: underline;">str_name</span></p>


und mein change.php Skript

<?php
 
// Überprüfen, ob der Dateipfad als Argument übergeben wurde
if ($argc < 2) {
    die("Bitte den Pfad zur CSV-Datei als Argument übergeben.\nBeispiel: php anzeige.php /pfad/zur/datei.csv\n");
}
 
// CSV-Dateipfad aus dem Argument erhalten
$csvFile = $argv[1];
 
// Pfade für Header und Footer Dateien festlegen
$headerFile = 'header.html';
$footerFile = 'footer.html';
 
// Überprüfen, ob die CSV-Datei existiert und lesbar ist
if (!file_exists($csvFile) || !is_readable($csvFile)) {
    die("Die angegebene CSV-Datei konnte nicht gefunden oder gelesen werden.\n");
}
 
// Überprüfen, ob Header- und Footer-Dateien existieren
$headerContent = file_exists($headerFile) ? file_get_contents($headerFile) : '';
$footerContent = file_exists($footerFile) ? file_get_contents($footerFile) : '';
 
// HTML-Dateipfad festlegen (im gleichen Verzeichnis wie die CSV-Datei)
$htmlFile = pathinfo($csvFile, PATHINFO_DIRNAME) . '/' . pathinfo($csvFile, PATHINFO_FILENAME) . '.html';
 
// CSV-Datei öffnen und Daten einlesen
$data = [];
if (($handle = fopen($csvFile, 'r')) !== false) {
    // Erste Zeile als Kopfzeile lesen
    $header = fgetcsv($handle);
 
    // Restliche Zeilen einlesen und in $data speichern
    while (($row = fgetcsv($handle)) !== false) {
        $data[] = array_combine($header, $row);
    }
    fclose($handle);
}
 
// HTML-Inhalt erstellen und Header einfügen
$htmlContent = '<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <title>Prüfprotokoll</title>
    <style>
        table { border-collapse: collapse; width: 75%; margin-left: auto; margin-right: auto; }
        th, td { border: 1px solid #ddd; padding: 8px; text-align: center; }
        th { background-color: #f2f2f2; }
        h1 { text-align: center; }
        footer { margin-top: 20px; } /* Abstand zwischen Tabelle und Footer vergrößern */
    </style>
</head>
<body>
';
 
// Header-Inhalt hinzufügen (wenn vorhanden)
$htmlContent .= $headerContent;
 
// Tabelle beginnen mit dem neuen Titel
$htmlContent .= '<h1>Prüfprotokoll</h1>
<table>
    <tr>';
 
// Spaltenüberschriften hinzufügen
foreach ($header as $col) {
    $htmlContent .= '<th>' . htmlspecialchars($col) . '</th>';
}
$htmlContent .= '</tr>';
 
// Datenzeilen hinzufügen
foreach ($data as $row) {
    $htmlContent .= '<tr>';
    foreach ($row as $cell) {
        $htmlContent .= '<td>' . htmlspecialchars($cell) . '</td>';
    }
    $htmlContent .= '</tr>';
}
 
$htmlContent .= '</table>';
 
// Footer-Inhalt hinzufügen (wenn vorhanden)
$htmlContent .= '<footer>' . $footerContent . '</footer>';
 
// HTML schließen
$htmlContent .= '</body></html>';
 
// HTML-Inhalt in Datei speichern
file_put_contents($htmlFile, $htmlContent);
 
echo "HTML-Datei wurde erfolgreich erstellt: $htmlFile\n";


Alle drei Dateien liegen gemeinsam in einem Ordner

/var/www/html/...
             change.php
             header.html
             footer.html
             img/logo.png

/var/www/html/protokolle/werte1.csv


Durch ausführen von change.php werden header,footer und die werte1 zusammengführt und als html Datei an der selben Stelle ausgegeben wie die werte1.csv.

php change.php /var/www/html/protokolle/werte1.csv
HTML-Datei wurde erfolgreich erstellt: /var/www/html/protokolle/werte1.html