CSV-Datei auslesen und HTML-Datei erstellen

Diskutiere CSV-Datei auslesen und HTML-Datei erstellen im PHP Forum im Bereich Programmierung; Ich bekomme beim Ausführen der folgenden PHP-Datei einen Fehlerhinweis: "22 Stack trace: #0 {main} thrown in...
  • CSV-Datei auslesen und HTML-Datei erstellen Beitrag #1
L
Lupus
Member
Beiträge
24
Punkte Reaktionen
0
Ich bekomme beim Ausführen der folgenden PHP-Datei einen Fehlerhinweis: "22 Stack trace: #0 {main} thrown in D:\xampp\htdocs\php-adventsfenster\generate.php on line 22
Kann mir jemand auf die Sprünge helfen, wie ich das heilen kann? Wenn ich die Wochentagfunktion weglasse funktioniert es.

Hier der Code:
<?php
setlocale(LC_TIME, "de_DE.UTF-8");
// CSV-Datei einlesen
$rows = array_map('str_getcsv', file('Adventsfenster.csv', FILE_IGNORE_NEW_LINES));
// Überschriften entfernen
array_shift($rows);
$html = "";
foreach ($rows as $row) {
list($tag, $name, $street, $city) = $row;
// Datum zusammenbauen → Jahr 2025
$dateString = $tag . " 2025";
// Datum erzeugen
$date = DateTime::createFromFormat("j. F Y", $dateString);
// Wochentag (MO., DI., MI., …)
$weekday = strtoupper(strftime("%a", $date->getTimestamp())) . ".";
// HTML erstellen
$html .= "
<section class=\"tag\">
<p>$tag | $weekday | $name, $street, $city</p>
</section>
";
}
// als HTML-Datei speichern
file_put_contents("adventsfenster.html", $html);
echo "✔ Fertig! Die Datei 'adventsfenster.html' wurde erzeugt.";
 
Anhänge
  • Adventsfenster.zip
    810 Bytes · Aufrufe: 1
  • CSV-Datei auslesen und HTML-Datei erstellen Beitrag #2
S
scatello
Well-known member
Beiträge
528
Punkte Reaktionen
44
1. Das ist nicht dir komplette Fehlermeldung
2. Wo ist Zeile 22?
3. Rücke den Quellcode ordentlich ein und benutze die Formatierungsmöglichkeiten des Forums, dann sieht das so aus:

PHP:
<?php
   setlocale(LC_TIME, "de_DE.UTF-8");

   // CSV-Datei einlesen
   $rows = array_map('str_getcsv', file('Adventsfenster.csv', FILE_IGNORE_NEW_LINES));

   // Überschriften entfernen
   array_shift($rows);

   $html = "";
 
   foreach ($rows as $row)
   {
      list($tag, $name, $street, $city) = $row;
     
      // Datum zusammenbauen → Jahr 2025
      $dateString = $tag . " 2025";
     
      // Datum erzeugen
      $date = DateTime::createFromFormat("j. F Y", $dateString);
     
      // Wochentag (MO., DI., MI., …)
      $weekday = strtoupper(strftime("%a", $date->getTimestamp())) . ".";
 
      // HTML erstellen
     $html .= "
                <section class=\"tag\">
                  <p>$tag | $weekday | $name, $street, $city</p>
                </section>
              ";
   }

   // als HTML-Datei speichern
   file_put_contents("adventsfenster.html", $html);
 
   echo "✔ Fertig! Die Datei 'adventsfenster.html' wurde erzeugt.";
?>

Und:

Richtig debuggen
  1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
  2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
  3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
  4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
  5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
  6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
  7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
  8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
  9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
 
  • CSV-Datei auslesen und HTML-Datei erstellen Beitrag #3
L
Lupus
Member
Beiträge
24
Punkte Reaktionen
0
Danke für Deine Unterstützung. Ich habe den Fehler gefunden!
 
Thema:

CSV-Datei auslesen und HTML-Datei erstellen

Oben Unten