Terjemah skrip PHP untuk membaca fail CSV dan kembali gema beberapa kali
P粉127901279
2023-08-06 19:24:52
<p>Saya telah menulis skrip PHP yang membaca fail CSV dan menerbitkan jadual radio yang terhasil pada tapak web berdasarkan masa dan tarikh. Bagaimanapun, nampaknya ia akan dikeluarkan dua kali. <br /><br />Berikut ialah kandungan skrip:</p><p><br /></p>
<pre class="brush:php;toolbar:false;"><?php
// Langkah 1: Gantikan 'data.csv' dengan laluan ke fail CSV anda
$csvFile = 'jadual.csv';
// Langkah 2: Baca CSV dan simpan kandungannya dalam tatasusunan
if (($handle = fopen($csvFile, 'r')) !== false) {
$csvData = [];
manakala (($data = fgetcsv($handle)) !== palsu) {
$csvData[] = $data;
}
fclose($handle);
} lain {
die("Ralat membuka fail CSV.");
}
// Langkah 3: Dapatkan hari dan masa semasa
$currentDay = tarikh('l'); // l memberikan perwakilan teks penuh hari itu (cth., "Isnin")
$currentHour = date('H'); // H memberikan jam dalam format 24 jam (cth., "13" untuk 1 PM)
// Laraskan offset jam di bawah.
$Jam = $currentHour+1;
// Langkah 4: Tapis tatasusunan berdasarkan hari dan masa semasa
$filteredData = [];
foreach ($csvData sebagai $row) {
// Dengan mengandaikan bahawa fail CSV anda mempunyai lajur "Hari" dan lajur "Masa".
$hari = $row[0];
$time = intval($row[1]);
$program_name= $row[2];
$program_when= $row[2];
$program_img= $row[4];
// Semak sama ada baris sepadan dengan hari dan masa semasa
jika ($hari === $currentDay && $Jam >= $masa) {
$filteredData[] = $baris;
}
}
// Langkah 5: Paparkan data yang ditapis dengan kelas CSS untuk setiap baris
if (count($filteredData) > 0) {
foreach ($filteredData sebagai $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>";
}
} lain {
echo 'Tidak tersedia.';
}</pre>
<p>Ini ialah data yang saya uji dalam fail CSV: </p>
<pre class="brush:php;toolbar:false;">Jumaat,12,MMV,sehingga 1pm,top_mmv.png
Jumaat,13,MMV,sehingga 2ptg,top_mmv.png
Jumaat,14,MMV,sehingga 3pm,top_mmv.png
Jumaat,15,MMV,sehingga 4ptg,top_mmv.png</pre>
<p>Tetapi apabila sampai ke 2 petang pada hari Jumaat, ia menyiarkan kedua-dua baris 1 petang dan 2 petang. Apa yang saya buat salah? </p>
Anda perlu menyatakan syarat untuk mengumpul data,
Sebagai contoh, masa semasa sekarang ialah pukul 14 (tambah 1 jam adalah pelarasan anda).
$Jam >= $masa
Saya rasa anda boleh nampak di mana masalahnya.