Script titrage radio

Script titrage radio - PHP - Programmation

Marsh Posté le 01-10-2014 à 15:17:06    

Bonjour,
 
On m'a aidé à créer un script de titrage qui doit normalement :
 
-Déterminer parmi une liste de fichiers, le plus récent
- Lire la dernière ligne dudit fichier
- Supprimer tout, sauf la chanson et l'interprète
-Mettre un tiret entre les deux pour faire plus propre
- Écrire le tout dans un fichier vierge
 
Sauf que l'on arrive pas justement à déterminer le fichier le plus récent qui sont notés comme suit : Diff_AAAAMMJJ.Log par exemple : Diff_20141002.Log et situés dans le dossier C:\AudioLog\Histo_OR3_Diffuseurs\Zone_00 De même pour tout enlever et ne garder que la chanson et l’interprète (sur cette première version du script on compte les lignes, mais ça serait plutôt le nombre de colonnes qu'il faut compter...) Bref, pas simple tout ça...
 
Pour le formatage du fichier de log voici un exemple :  
20:15:55 00007682:ACT LIKE YOU KNOW                       :Fat Larry's Band
 
Voici le code :

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5.  <title>NOM DE TA RADIO</title>
  6.  <!-- Rafraichissement de la page toutes les 5 secondes -->
  7.  <meta http-equiv="refresh" content="5" />
  8.  <!-- Feuille de style -->
  9.  <style type="text/css">
  10.   body {
  11.    font-family   : Arial;
  12.    width    : 900px;
  13.    background-color  : #034A79;
  14.    margin    : 50px auto 0;
  15.   }
  16.   div {
  17.    -moz-border-radius  : 8px 8px 8px 8px;
  18.    -moz-box-shadow  : 0 0 50px black;
  19.    background-color : #E0EFF6;
  20.    border    : 1px solid #599CD4;
  21.    padding    : 20px;
  22.    color    : #19B300;
  23.    font-weight   : bold;
  24.    text-align   : center;
  25.   }
  26.   span {
  27.    display    : block;
  28.    color    : #005A88;
  29.    margin-bottom  : 25px;
  30.   }
  31.  </style>
  32. </head>
  33. <body>
  34. <?php
  35.     error_reporting(E_ALL);
  36.     ini_set('display_errors','On');
  37. // Définit le fuseau horaire à l'heure française
  38. date_default_timezone_set('Europe/Paris');
  39. // Affiche la date et l'heure qui sera traitée
  40. echo date('l jS \of F Y h:i:s A');
  41.  // Selection du fichier
  42.  $fichier = file('C:\AudioLog\Histo_OR3_Diffuseurs\Zone_00\Diff_20140930.Log');
  43.  // Nombre total de ligne dans le fichier
  44.  $total = count($fichier);
  45.  // Récupération de la ligne contenant le titre
  46.  $ligne = $fichier[$total - 18];
  47.  // Récupération uniquement du titre - On supprime les balises a droite et a gauche
  48.  $coupeGauche = strpos($ligne, ">" );
  49.  $interprete = substr($ligne, $coupeGauche+1);
  50.  $coupeDroite = strpos($interprete, "<" );
  51.  $interprete = trim(substr($interprete, 0, $coupeDroite));
  52.  // Récupération de la ligne contenant l'interprete
  53.  $ligne = $fichier[$total - 59];
  54.  // Récupération uniquement de interprete - On supprime les balises a droite et a gauche
  55.  $coupeGauche = strpos($ligne, ">" );
  56.  $titre = substr($ligne, $coupeGauche+1);
  57.  $coupeDroite = strpos($titre, "<" );
  58.  $titre = trim(substr($titre, 0, $coupeDroite));
  59.  // Creation de la ligne contenant 'Interprete - Titre de la chanson'
  60.  $chanson = $interprete." - ".$titre;
  61.  // Ouverture du fichier en mode écriture
  62.  $cheminTitre = 'C:\AudioLog\titrage.txt';
  63.  $titre = fopen($cheminTitre, 'w+');
  64.  // On ajoute la chanson dans le fichier
  65.  fputs($titre, $chanson); 
  66.  // On ferme et enregistre le fichier
  67.  fclose($titre);
  68. ?>
  69. <?php
  70.   // Affichage de la dernière actualisation pour le titrage
  71.   setlocale (LC_TIME, 'fr_FR.utf8','fra');
  72.   $heures = strftime("%H" );
  73.   $heure = $heures.strftime("h%M et %S secondes" );
  74.   $actualisation = ucfirst(strftime("%A %d %B à $heure" ));
  75.   echo "
  76.    <div>
  77.     <h2>Dernière actualisation pour le titre</h2>
  78.     <br/>
  79.     <span>$actualisation</span>
  80.    </div>
  81.   ";
  82.  ?>
  83. </body>
  84. </html>


 
Si quelqu'un à une idée ?
 
Merci d'avance.


Message édité par renaud072 le 01-10-2014 à 15:37:46
Reply

Marsh Posté le 01-10-2014 à 15:17:06   

Reply

Marsh Posté le 02-10-2014 à 22:02:34    

Personne ?
 
Ce script défit-il toutes les lois de la programmation ? :lol:

Reply

Marsh Posté le 03-10-2014 à 13:08:57    

Pour le parsing du fichier, je te recommande plutôt les regexp ou explode().
 
Pour l'écriture du fichier, je te recommande plutôt file_put_contents().
 
Pour déterminer le fichier le plus récent, si le nom a le format Diff_AAAAMMJJ.Log, c'est pas bien compliqué. Tu listes dans un array tous les fichiers du répertoire, tu parses leur nom de fichier pour extraire la date et al mettre au format yyyy-mm-dd, valeur que tu associe au nom de fichier fans le tableau. Après, soit tu fais un algo de tri en appliquant strtotime() sur la date (pour comparer les timestamps 2 à 2), soit tu parcours le tableau en conservant le nom de fichier et le timestamp le plus grand rencontré : à chaque fois que t'en rencontre un plus élevé, tu remplaces les valeurs du nom et du timestamp par celles trouvées. A la fin du parcourt, t'as le fichier le plus récent.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 05-10-2014 à 03:06:48    

Merci beaucoup pour la réponse !  
 
Est-ce que tu pourrais reprendre le script et intégrer la modif, car en fait je n'y connais quasiment rien en prog. Enfin, une fois le code écrit et commenté je suis capable de le comprendre en gros mais l’écrire de zéro j'en suis incapable.
 
D’ailleurs le script de départ on me l'a écrit.
 
Merci ;)  
 

Reply

Marsh Posté le 06-10-2014 à 10:01:51    

Désolé, on ne fait pas le travail à la place des autres ;) L'un des buts de ce forum est d'aider les débutants à apprendre à programmer. On leurs donne des indications, des pistes... à eux de les suivre.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed