Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1350 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Script titrage radio

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script titrage radio

n°2239414
renaud072
Posté le 01-10-2014 à 15:17:06  profilanswer
 

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
mood
Publicité
Posté le 01-10-2014 à 15:17:06  profilanswer
 

n°2239555
renaud072
Posté le 02-10-2014 à 22:02:34  profilanswer
 

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

n°2239589
rufo
Pas me confondre avec Lycos!
Posté le 03-10-2014 à 13:08:57  profilanswer
 

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
n°2239667
renaud072
Posté le 05-10-2014 à 03:06:48  profilanswer
 

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 ;)  
 

n°2239686
rufo
Pas me confondre avec Lycos!
Posté le 06-10-2014 à 10:01:51  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Script titrage radio

 

Sujets relatifs
Créer un exécutable à partir d'un script Perlscript src="//cdn.com/lib.js" ou src="http://cdn.com/lib.js" ?
[Résolu] Probleme execution de script php avec cron(module/script) Espace Secur + messagerie interne
Création d'un script ou btach de copie de fichier sous windowsScript affichage taille fichier
Script changement auto stream TwitchScript pour alterner deux (ou trois) pubs sur le même emplacement
Aide script flash CS6Script très léger pour activer les touches du clavier ?
Plus de sujets relatifs à : Script titrage radio


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR