Übersetzen Sie das PHP-Skript, um die CSV-Datei zu lesen und mehrmals Echo zurückzugeben
P粉127901279
2023-08-06 19:24:52
<p>Ich habe ein PHP-Skript geschrieben, das eine CSV-Datei liest und den resultierenden Radioplan basierend auf Uhrzeit und Datum auf einer Website veröffentlicht. Es scheint jedoch, dass es zweimal veröffentlicht wird. <br /><br />Das Folgende ist der Skriptinhalt:</p><p><br /></p>
<pre class="brush:php;toolbar:false;"><?php
// Schritt 1: Ersetzen Sie „data.csv“ durch den Pfad zu Ihrer CSV-Datei
$csvFile = 'schedule.csv';
// Schritt 2: CSV lesen und seinen Inhalt in einem Array speichern
if (($handle = fopen($csvFile, 'r')) !== false) {
$csvData = [];
while (($data = fgetcsv($handle)) !== false) {
$csvData[] = $data;
}
fclose($handle);
} anders {
die("Fehler beim Öffnen der CSV-Datei.");
}
// Schritt 3: Ermitteln Sie den aktuellen Tag und die aktuelle Uhrzeit
$currentDay = date('l'); // l gibt die vollständige Textdarstellung des Tages an (z. B. „Montag“)
$currentHour = date('H'); // H gibt die Stunde im 24-Stunden-Format an (z. B. „13“ für 13:00 Uhr)
// Stundenversatz unten anpassen.
$Stunde = $aktuelleStunde+1;
// Schritt 4: Filtern Sie das Array basierend auf dem aktuellen Tag und der aktuellen Uhrzeit
$filteredData = [];
foreach ($csvData as $row) {
// Angenommen, Ihre CSV-Datei enthält eine Spalte „Tag“ und eine Spalte „Uhrzeit“.
$day = $row[0];
$time = intval($row[1]);
$program_name= $row[2];
$program_when= $row[2];
$program_img= $row[4];
// Überprüfen Sie, ob die Zeile mit dem aktuellen Tag und der aktuellen Uhrzeit übereinstimmt
if ($day === $currentDay && $Hour >= $time) {
$filteredData[] = $row;
}
}
// Schritt 5: Zeigen Sie die gefilterten Daten mit CSS-Klassen für jede Zeile an
if (count($filteredData) > 0) {
foreach ($filteredData as $row) {
echo "<div class='row'>";
echo "<div class='col-5'>";
echo "<img src='$row[4]' width='90' height='90' border='0'>";
echo "</div>";
echo "<div class='col-7'>";
echo "<h3>$row[2]<br>$row[3]</h3>";
echo "</div>";
echo "</div>";
}
} anders {
echo 'Nicht verfügbar.';
}</pre>
<p>Dies sind die Daten, mit denen ich in einer CSV-Datei getestet habe: </p>
<pre class="brush:php;toolbar:false;">Freitag,12,MMV,bis 13 Uhr,top_mmv.png
Freitag,13,MMV,bis 14 Uhr,top_mmv.png
Freitag,14,MMV,bis 15 Uhr,top_mmv.png
Freitag,15,MMV,bis 16 Uhr,top_mmv.png</pre>
<p>Aber wenn es am Freitag 14 Uhr ist, werden sowohl die 13-Uhr- als auch die 14-Uhr-Zeile gepostet. Was habe ich falsch gemacht? </p>
你需要指定收集数据的条件,
例如,现在的当前时间是14点(加1小时是你的调整)。
$Hour >= $time
我认为你可以看到问题出在哪里。