recherche

Maison  >  Questions et réponses  >  le corps du texte

Traduire le script PHP pour lire le fichier CSV et renvoyer l'écho plusieurs fois

<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>
P粉127901279P粉127901279480 Il y a quelques jours597

répondre à tous(1)je répondrai

  • P粉481815897

    P粉4818158972023-08-07 17:28:40

    Vous devez préciser les conditions de collecte des données,

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

    Par exemple, l'heure actuelle est maintenant 14 heures (ajoutez 1 heure est votre ajustement).

    $Heure >= $time

    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

    Je pense que vous pouvez voir où est le problème.

    répondre
    0
  • Annulerrépondre