Terjemah skrip PHP untuk membaca fail CSV dan kembali gema beberapa kali
P粉127901279
P粉127901279 2023-08-06 19:24:52
0
1
592
<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>
P粉127901279
P粉127901279

membalas semua(1)
P粉481815897

Anda perlu menyatakan syarat untuk mengumpul data,

if ($day === $currentDay && $Hour >= $time) {

Sebagai contoh, masa semasa sekarang ialah pukul 14 (tambah 1 jam adalah pelarasan anda).

$Jam >= $masa

15 >= time from first line of csv is 12 - true
15 >= time from second line of csv is 13 - true
15 >= time from third line of csv is 14 - true
15 >= 15 - true

Saya rasa anda boleh nampak di mana masalahnya.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan