IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Script titrage radio


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Script titrage radio
    Bonsoir,

    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
    (du bord gauche jusqu’à interprète y'a normalement 60 colonnes et 19 pour la chanson)

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

    Si quelqu'un a une piste...

    Merci d'avance.

    PS : Ne le prenez pas mal, mais si vous savez comment faire, ne me faites pas jouer aux devinettes du style "il faut que tu utilises cette fonction-ci", reprenez le code et modifiez ou ajoutez la partie manquante et seulement à la fin j'essaierais de comprendre comment elle fonctionne. Car je ne l'ai pas dit avant mais ce n'est pas pour ma culture perso, derrière y'a une vraie radio qui attend ce script et plus ça traine, plus ça leur est préjudiciable.

    Merci de votre compréhension.

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Personne ?

    Je rappel qu'il y a une radio qui attend ce script, ce n'est pas pour m'amuser, j'ai vraiment besoin d'un coup de pouce. Merci.

  3. #3
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Citation Envoyé par renaud43 Voir le message
    PS : Ne le prenez pas mal, mais si vous savez comment faire, ne me faites pas jouer aux devinettes du style "il faut que tu utilises cette fonction-ci", reprenez le code et modifiez ou ajoutez la partie manquante et seulement à la fin j'essaierais de comprendre comment elle fonctionne. Car je ne l'ai pas dit avant mais ce n'est pas pour ma culture perso, derrière y'a une vraie radio qui attend ce script et plus ça traine, plus ça leur est préjudiciable.
    Citation Envoyé par renaud43 Voir le message
    Je rappel qu'il y a une radio qui attend ce script, ce n'est pas pour m'amuser, j'ai vraiment besoin d'un coup de pouce. Merci.
    Je te rappelle que tu es sur un forum d'entraide où des bénévoles donnent de leur temps pour aider les apprenants.
    Ta requête, par contre, c'est carrément donnez-moi la soluce toute cuite parce que ça urge. Je suis webmaster, j'ai un client qui poireaute et il commence à trouver le temps long...

    Ben, il attendra. Si ça urge tant que ça, tu n'as qu'à sous-traiter ce que tu n'arrives pas à faire.

    Allez, parce que j'suis trop bon : regarde du côté de la fonction scandir() et son deuxième argument.
    Après le traitement d'un fichier de log est très proche d'un traitement csv basique. Je te laisse chercher comme un grand...

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Peut être que les questions façon "merci de me faire - voici la liste" ça n'attire pas grand monde.

    Bref pour lister et trier des noms de fichiers, il y a plein de façon de faire (qui doivent bien se trouver en deux clicks mais passons).
    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $liste = glob('C:\AudioLog\Histo_OR3_Diffuseurs\Zone_00\*.log');
    rsort($liste);
    echo 'dernier fichier : ' . $liste[0];
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Merci pour les réponses.

    J'ai effectivement pensé qu'en écrivant le PS du premier message ça faisait un peu "autoritaire", et je me rends bien compte que ce n'est pas la meilleur façon pour demander de l'aide, je vous présente donc mes plus plates excuses.

    @ rawsrc : Je suis également bénévole, je ne suis pas payé pour faire le script, donc finalement on est dans la même situation. De même l’histoire du métier que l'on fait et qu'on est obligé de renseigner à l'inscription, j'ai mis webmaster pour mettre quelque chose mais je ne le suis pas du tout. Je n'ai qu'un BAC électrotechnique et tout mes connaissances sur l'info je les ai apprises en autodidacte.

    Je vais regarder pour la fonction scandir() merci


    @sabotage : Merci beaucoup, je teste voir si ça fonctionne.

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Apparemment la méthode de sabotage fonctionne et si je crée à la main un fichier plus récent il est bien pris en compte

    Par contre maintenant qu'on a le fichier plus plus récent on l'ouvre comment ? J'ai essayé ça, mais ça ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //fichier le plus récent
    		$liste = glob('C:\AudioLog\Histo_OR3_Diffuseurs\Zone_00\*.Log');
    		rsort($liste);
    		echo 'dernier fichier : ' . $liste[0];
     
    		// Selection du fichier
    		$fichier = file($liste);
    Dans ce cas ça considère le $liste comme un fichier et non comme le chemin vers le fichier Comment lui faire comprendre ?

    EDIT : J'ai essayé avec $fichier = ('$liste'); Dans ce cas ça m'inscrit un $ dans le fichier de titrage...
    Avec $fichier = ($liste); ça me recopie le chemin du fichier...
    Avec $fichier = file($liste); ça me dit Warning: file() expects parameter 1 to be a valid path, array given in C:\wamp\www\titre2.php on line 53
    Avec $fichier = file('$liste'); ça me dit Warning: file($liste): failed to open stream: No such file or directory in C:\wamp\www\titre2.php on line 53

    Berf, je sèche

    Merci.

    Pour déterminer la dernière ligne, j'ai trouvé cette fonction qui marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $fichier = file('C:\AudioLog\Histo_OR3_Diffuseurs\Zone_00\Diff_20001005.Log');
    	$tab = $fichier;
    	$der_ligne = $tab[count($tab)-1];
    	echo $der_ligne;
    Et en la couplant avec la fin du script j'arrive à écrire dans le fichier de titrage, ça copie la ligne telquel, mais c'est déjà un début. Mais du coup vu que ce n'est pas "chanson - inteprète" ça s'affiche seulement dans VLC lorsque je lis le stream, sur le player web (radio edition) ça ne fonctionne pas, il faut impérativement que ce soit "qqch - qqch" car il se sert aussi de ça pour afficher les pochettes.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bon, j'approche du but

    Mon erreur d’ouverture c'était juste un élément manquant au lieu d'écrire $fichier = file($liste); il fallait que je rajoute $fichier = file($liste[0]);

    C'était tout bête.

    Donc maintenant j 'ai :

    -Détermination du fichier le plus récent : OK
    -Détermination de la dernière ligne : OK
    -Écriture dans le fichier de titrage : OK

    Il me manque donc le formatage et j'aurais fini

    Pour le formatage, en fait ça aide, il faudrait supprimer tout ce qui se trouve avant les deux points et je pense qu'on peut s'inspirer de ce qui a sur ce topic Mais le problème c'est que dans un cas c'est du texte et dans l'autre des espaces et il ne faut pas non plus que ça efface la chanson...

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    avec explode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $values = explode(':', $der_ligne);
    echo trim($values[3]) . '-' . trim($values[4]);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Merci infiniment !!! ça fonctionne à la perfection

    Je pensais que c'était un poil plus compliqué mais tant mieux que ce soit aussi simple !

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Pour ceux que ça intéresse voici le script complet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     
    	<head>
     
    		<title>SCRIPT TITRAGE</title>
     
    		<!-- Rafraichissement de la page toutes les 5 secondes -->
    		<meta http-equiv="refresh" content="5" />
     
    		<!-- Feuille de style -->
    		<style type="text/css">
     
    			body {
    				font-family			: Arial;
    				width				: 900px;
    				background-color 	: #034A79;
    				margin				: 50px auto 0;
    			}
     
    			div {
    				-moz-border-radius 	: 8px 8px 8px 8px;
    				-moz-box-shadow		: 0 0 50px black;
    				background-color	: #E0EFF6;
    				border				: 1px solid #599CD4;
    				padding				: 20px;
    				color				: #19B300;
    				font-weight			: bold;
    				text-align			: center;
    			}
     
    			span {
    				display				: block;
    				color				: #005A88;
    				margin-bottom		: 25px;
    			}
     
    		</style>
     
     
    	</head>
     
    	<body>
    <?php
     
    	error_reporting(E_ALL);
        ini_set('display_errors','On');
     
    	// Définit le fuseau horaire à l'heure française
    	date_default_timezone_set('Europe/Paris');
     
    	// Affiche la date et l'heure qui sera traitée
    	//echo date('l jS \of F Y h:i:s A');
     
    		//fichier le plus récent
    		$liste = glob('C:\AudioLog\Histo_OR3_Diffuseurs\Zone_00\*.Log');
    		rsort($liste);
    		//echo 'dernier fichier : ' . $liste[0];
     
    		// Selection du fichier
    		$fichier = file($liste[0]);
     
    		// Selection derniere ligne
    		$tab = $fichier;
    		$der_ligne = $tab[count($tab)-1];
    		//echo $der_ligne;
     
    		// formatage chanson - interprète
    		$values = explode(':', $der_ligne);
    		$chanson = trim($values[3]) . ' - ' . trim($values[4]);
     
    		// Ouverture du fichier en mode écriture
    		$cheminTitre = 'C:\AudioLog\titrage.txt';
    		$titre = fopen($cheminTitre, 'w+');
     
    		// On ajoute la chanson dans le fichier
    		fputs($titre, $chanson);  
     
    		// On ferme et enregistre le fichier
    		fclose($titre);
     
    	?>
    	<FONT COLOR="red" ><FONT size="12pt"><center><b>NE PAS FERMER CETTE PAGE</b></center> </FONT> </FONT>
    	<?php
    	// Affichage de la dernière actualisation pour le titrage
    			setlocale (LC_TIME, 'fr_FR.utf8','fra');
     
    			$heures = strftime("%H");
    			$heure = $heures.strftime("h%M et %S secondes");
    			$actualisation = ucfirst(strftime("%A %d %B à $heure"));
    			echo "
    				<div>
    					<h2>Dernière actualisation pour le titre</h2>
    				   
    					<span>$actualisation</span>
    					
    				</div>
    			";
     
    		?>
     
    	</body>
     
    </html>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mon script pour Tester un bouton radio ne fonctionne pas.
    Par Invité dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 10/06/2011, 00h39
  2. Script ne fonctionne pas sous IE check de bouton radio
    Par bastian06n dans le forum Général JavaScript
    Réponses: 29
    Dernier message: 03/08/2010, 19h30
  3. script bouton radio
    Par hardcoregamer dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 15/06/2010, 16h25
  4. Radio boutton dans un script python
    Par Abla23 dans le forum Zope
    Réponses: 17
    Dernier message: 12/07/2006, 17h12
  5. Réponses: 3
    Dernier message: 16/12/2005, 15h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo