Traduire le script PHP pour lire le fichier CSV et renvoyer l'écho plusieurs fois
P粉127901279
2023-08-06 19:24:52
<p>J'ai écrit un script PHP qui lit un fichier CSV et publie le programme radio obtenu sur un site Web en fonction de l'heure et de la date. Cependant, il semble qu'il sera publié deux fois. <br /><br />Ce qui suit est le contenu du script :</p><p><br /></p>
<pre class="brush:php;toolbar:false;"><?php
// Étape 1 : Remplacez 'data.csv' par le chemin d'accès à votre fichier CSV
$csvFile = 'programmation.csv';
// Étape 2 : Lire le CSV et stocker son contenu dans un tableau
if (($handle = fopen($csvFile, 'r')) !== false) {
$csvData = [];
while (($data = fgetcsv($handle)) !== false) {
$csvData[] = $données ;
}
fclose($poignée);
} autre {
die("Erreur à l'ouverture du fichier CSV.");
}
// Étape 3 : Obtenir le jour et l'heure actuels
$currentDay = date('l'); // l donne la représentation textuelle complète du jour (par exemple, "Lundi")
$currentHour = date('H'); // H donne l'heure au format 24 heures (par exemple, "13" pour 13 heures)
// Ajustez le décalage horaire ci-dessous.
$Heure = $heureactuelle+1 ;
// Étape 4 : Filtrer le tableau en fonction du jour et de l'heure actuels
$filteredData = [];
foreach ($csvData comme $row) {
// En supposant que votre fichier CSV possède une colonne "Jour" et une colonne "Heure"
$jour = $ligne[0] ;
$time = intval($row[1]);
$program_name= $row[2];
$program_when= $row[2];
$program_img= $row[4];
// Vérifiez si la ligne correspond au jour et à l'heure actuels
if ($day === $currentDay && $Hour >= $time) {
$filteredData[] = $ligne ;
}
}
// Étape 5 : Afficher les données filtrées avec les classes CSS pour chaque ligne
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>";
}
} autre {
echo 'Non disponible.';
}</pré>
<p>Voici les données avec lesquelles j'ai testé dans un fichier CSV : </p>
<pre class="brush:php;toolbar:false;">Vendredi 12,MMV,jusqu'à 13h,top_mmv.png
Vendredi 13,MMV,jusqu'à 14h,top_mmv.png
Vendredi 14,MMV,jusqu'à 15h,top_mmv.png
Vendredi 15,MMV,jusqu'à 16h,top_mmv.png</pre>
<p>Mais lorsqu'il arrive à 14 heures le vendredi, il publie les lignes de 13 heures et de 14 heures. Qu'ai-je fait de mal? </p>
Vous devez préciser les conditions de collecte des données,
Par exemple, l'heure actuelle est maintenant 14 heures (ajoutez 1 heure est votre ajustement).
$Heure >= $time
Je pense que vous pouvez voir où est le problème.