Die Möglichkeit von Rolf sehe ich vorne ... bekanntes/gleiches System, nur mit PHP
Jepp! Aber eine Änderung schlage ich vor:
Am Server ein cgi-Script starten und die Daten aufbereitet (Name:Messwert,x:y) und an die Webseite zurückgesendet.
→ Ändere das Format der gesendeten Daten von einem „sehr speziellen CSV“ in JSON.
An Deiner Stelle würde ich dann die Funktionen oder Klassen zum Abrufen der Daten (Bis zum Array) und dem Erzeugen des JSON in Libary-Dateien außerhalb des Document-Root unterbringen.
So kannst Du diese Daten (den Array) leicht beim Abruf der Webseite einbauen, aber wenn der Browser den Request mit JS durchführt brauchst Du nur noch ein weiteres, bemerkenswert kleines Mini-Skript, welches die Daten in JSON umbaut und den HTTP-Header schreibt. Mit fetch oder XHRRequest abholen und einbauen ist dann ein Kinderspiel.
<?php
### Meine etwas spezielle Methode, mir bei Debuggen zu helfen:
### wenn etwas mit den Daten nicht zu stimmen scheint
### setze ich DEBUG an geeigneter Stelle auf einen
### anderen Wert als 0 oder „falsy“ und reagiere im Skript…
if ( ! defined 'DEBUG' ) {
define ('DEBUG', false );
}
## Liefert die Funktion getDataFromDBAsArray,
## welche den Array mit den Daten liefert:
require $_SERVER['DOCUMENT_ROOT'] . '../lib/getDataFromDBAsArray.php';
## Headers:
if ( DEBUG ) {
header('Content-Type: text/plain; charset=UTF-8');
} else {
header('Content-Type: application/json');
}
## striktes Verhindern des Cachens:
header('Cache-Control: no-cache');
header("Expires: 0");
header('Pragma: no-cache');
## Daten holen und senden
echo json_encode( getDataFromDBAsArray() );
if ( DEBUG ) {
echo json_encode(
getDataFromDBAsArray(),
JSON_FORCE_OBJECT | JSON_PRETTY_PRINT
);
} else {
echo json_encode(
getDataFromDBAsArray(),
JSON_FORCE_OBJECT
);
}
Hints: (Keine BOM, keine Leerzeichen oder Zeilen vor dem <?php, kein schließendes ?>)
Statt die Daten selbst mit JS zu zerlegen kannst Du dann einfach das (z.B. mit fetch abgeholtes JSON in ein Objekt umbauen lassen und dessen Werte dann auf übersichtliche Weise in Dein DOM einbauen lassen.