Für ein kleines Problem sollte ein PHP Skript geschrieben werden.
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" /> <strong> Coole Firma</strong></h1>
und dazu auch noch eine footer.html
<p>Durchgefü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