fr.bs.corporation Posté(e) 11 mai 2011 Signaler Share Posté(e) 11 mai 2011 Bonjour,J'aimerai savoir où je peux trouver un script genre C T KOI qui me permette de récupérer les titres passés sur ma radio ?J'attends vos réponses.Cordialement. Lien vers le commentaire Partager sur d’autres sites More sharing options...
R3dH4x0r Posté(e) 11 mai 2011 Signaler Share Posté(e) 11 mai 2011 Si tu est sous radionomy vas sur http://radionomy.letoptop.fr/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
FoRhum Posté(e) 12 mai 2011 Signaler Share Posté(e) 12 mai 2011 Moi je suis sur Shoutcast, comment puis-je faire en utilisant ce même procédé ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jimpy Posté(e) 12 mai 2011 Signaler Share Posté(e) 12 mai 2011 Tu ne peux pas, le système proposé par R3dH4x0r fonctionne seulement pour les radios Radionomy, pour que tu puissent faire ça avec un Shoutcast, je crains qu'il faillent que tu créer ton propre système en PHP (réussir a enregistré tout les titres qui sont diffusé dans une BDD Mysql avec le jour et l'heure, à partir de ça, tu pourras faire ce que tu veux avec cette BDD, entre autre faire un "C T Koi") Lien vers le commentaire Partager sur d’autres sites More sharing options...
chercheur Posté(e) 12 mai 2011 Signaler Share Posté(e) 12 mai 2011 pour shoutcast il faudrait essayer de recuperer le code de la page dernier titre dans monip:portet le mettre dans un html en modifiant un peut Lien vers le commentaire Partager sur d’autres sites More sharing options...
fr.bs.corporation Posté(e) 12 mai 2011 Auteur Signaler Share Posté(e) 12 mai 2011 En réalité, c'est un serveur Southcast, mais je ne pense pas avoir les connaissances nécessaires en PHP pour créer le Script. Lien vers le commentaire Partager sur d’autres sites More sharing options...
fr.bs.corporation Posté(e) 28 juin 2011 Auteur Signaler Share Posté(e) 28 juin 2011 Bonjour,N'y aurait-il pas un moyen d'enregistrer dans mon PhpMyAdmin depuis VLC, Winamp ou tout autre lecteur le titre qui est passé et l'heure ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
tydoo Posté(e) 28 juin 2011 Signaler Share Posté(e) 28 juin 2011 Salut a tous ;)Je vais essayer de vous aider a ce niveau la ^^En faite il n'y a aucun moyen matéreil ni logiciel de détecter une musique et de l'enregistrée en BDD sql. Les grosses radio font une liste des musique a passer dans la journée, on va prendre exemple avec Fun radio.Fun donne une fiche avec toutes les musiques a passer avec des Top horaire. Les moments des speaks, sur intro ou sur cage.Et donc il ont une liste des musique qu'ils doivent passer.Sur internet, ils enregistrent cette liste en BDD sql.Et un script, tout facile, va chercher l'id 1 qui passe a 16H24. L'id 2 a 16H35 ... Et in ci de suite. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Jimpy Posté(e) 28 juin 2011 Signaler Share Posté(e) 28 juin 2011 Attention quand même avec cette technique, il faudra mettre une condition pour ne pas afficher les titres a venir ;) Lien vers le commentaire Partager sur d’autres sites More sharing options...
MaxPag Posté(e) 28 juin 2011 Signaler Share Posté(e) 28 juin 2011 La première partie de ce que tu dis est fausse. J'ai développé un système de ce genre pour la webradio pour laquelle je travaille. Le logiciel de titrage qui est disponible gratuitement sur le net appelle une page php avec le titre dans l'url. Dans cette page php, je récupère le titre, l'heure et la date et j'ajoute le tout dans la base de donnée.Il n'existe pas de solution toute faite, c'est à vous de la développer. Lien vers le commentaire Partager sur d’autres sites More sharing options...
tydoo Posté(e) 28 juin 2011 Signaler Share Posté(e) 28 juin 2011 oui du genre page.php?id=1&titre=lol&artiste=moi&date=13/18/46&heure=15H15Ca oui, mais je parle d'un logiciel qui se connecte en BDD externe et enregistre. Juste une connexion est possible. Mais pas d'envoi, Cela n'est pas possible. Lien vers le commentaire Partager sur d’autres sites More sharing options...
fr.bs.corporation Posté(e) 28 juin 2011 Auteur Signaler Share Posté(e) 28 juin 2011 Et existe t'il une liste des titres passés pour In The Club by Goom Radio ?Car je suis partenaire avec eux mais je ne peux pas avoir de programmeur de chez eux étant donné qu'ils sont chez GoomRadio USA.À moins que j'arrive à faire faire une capture d'écran à mon serveur à chaque changement de titre par VLC et remplir une liste moi même.Je vais tenter d'aviser. Lien vers le commentaire Partager sur d’autres sites More sharing options...
MaxPag Posté(e) 28 juin 2011 Signaler Share Posté(e) 28 juin 2011 Le logiciel se connecte a ma page comme ceci :Logiciel de titrage >> mapage.php?titre=Eminem - Stan >> Ajout dans la DB SQLDans "mapage.php", il y du code php qui est exécuté et qui récupère le titre en GET, la date et l'heure du serveur web et qui ajoute le tout dans une table SQL.Et si tu ne veux pas passer par le soft de titrage une tache CRON sur un fichier php qui récupère le titre du SHOUTcast et si il est différent du précédent tu l'ajoute. Lien vers le commentaire Partager sur d’autres sites More sharing options...
fr.bs.corporation Posté(e) 28 juin 2011 Auteur Signaler Share Posté(e) 28 juin 2011 Je vais voir ce que je peux faire pour récupérer les titres depuis la plateforme de streaming mais avant, j'y avait accès.Maintenant j'ai un joli message d'erreur. http://212.23.58.168:8000/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
MaxPag Posté(e) 28 juin 2011 Signaler Share Posté(e) 28 juin 2011 Sur ce coup, je ne peux pas t'aider ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
fr.bs.corporation Posté(e) 28 juin 2011 Auteur Signaler Share Posté(e) 28 juin 2011 Merci MaxPag, je vais tenter de procéder comme tu as citéNon mais je vais tenter avec southcast Lien vers le commentaire Partager sur d’autres sites More sharing options...
tydoo Posté(e) 28 juin 2011 Signaler Share Posté(e) 28 juin 2011 Pour la date et l'heure je te conseil d'utiliser un timestamp.Préci et tres simple d'utilisation. Et pour le coup Tres bien pour les titrage radio :)du genre (il y a 2 minutes) Lien vers le commentaire Partager sur d’autres sites More sharing options...
fr.bs.corporation Posté(e) 28 juin 2011 Auteur Signaler Share Posté(e) 28 juin 2011 Pour la date et l'heure je te conseil d'utiliser un timestamp.Préci et tres simple d'utilisation. Et pour le coup Tres bien pour les titrage radio :)du genre (il y a 2 minutes)J'y avais pensé, t’inquiète ;)Je m'occupe d'abord de chercher un pilote de carte son qui aille sur mon serveur car elle marchait sous windows serveur 2003 mais depuis que je suis passé au 2008... Winamp refuse de lancer le stream ^^ Lien vers le commentaire Partager sur d’autres sites More sharing options...
tydoo Posté(e) 28 juin 2011 Signaler Share Posté(e) 28 juin 2011 La pour le coup je peut pas t'aider !! Essay le bon vieux mesdrivers.com ;) Lien vers le commentaire Partager sur d’autres sites More sharing options...
fr.bs.corporation Posté(e) 28 juin 2011 Auteur Signaler Share Posté(e) 28 juin 2011 La pour le coup je peut pas t'aider !! Essay le bon vieux mesdrivers.com ;)LOL ca y est, j'ai fini par trouver en prenant le dernier driver sur le site Realtek. Hé oui, un serveur avec peut de moyens, ca donne un bon vieux Dell Optiplex =)EDIT : Ca y est, tout est bon, maintenant ca se complique car on arrive à la partie où il faut envoyer les données à la base de données quand il y a un changement de titre... J'ai trouvé sur internet un petit script php qui me donne le titre; voir ici : http://46.22.92.83/itc/index.phpSi quelqu'un s'y connais dans le domaine de l'envoie vers la base de données, j'aurai besoin d'un peut d'aide. Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
fr.bs.corporation Posté(e) 28 juin 2011 Auteur Signaler Share Posté(e) 28 juin 2011 J'aurai encore besoin d'aide quand à la récupération des titres.J'ai mis en stream la radio à laquelle je souhaite récupérer les données avec Winamp, avec le DSP EdCast et IceCast Server.Tout fonctionne correctement, voir à l'adresse de mon serveur : http://46.22.92.83:8000Maintenant si quelqu'un voudrait bien m'expliquer comment faire la récupération des titres, je lui en serait reconnaissant.Merci d'avance Lien vers le commentaire Partager sur d’autres sites More sharing options...
tydoo Posté(e) 28 juin 2011 Signaler Share Posté(e) 28 juin 2011 Moi je suis webmaster de reseau social, donc c'est complétement mon domaine ^^Le truc c'est comme je l'est expliquer taleur, c'est enregistré en BDD et tout ;) Lien vers le commentaire Partager sur d’autres sites More sharing options...
fr.bs.corporation Posté(e) 28 juin 2011 Auteur Signaler Share Posté(e) 28 juin 2011 Moi je suis webmaster de reseau social, donc c'est complétement mon domaine ^^Le truc c'est comme je l'est expliquer taleur, c'est enregistré en BDD et tout ;)Oui, donc là j'ai mon config.php, la page qui affiche le titre est prête à s'y connecter mais je ne sais pas comment faire apres, c'est ca le problème.config.php :<?php define("DB_HOST","127.0.0.1"); define("DB_LOGIN","val"); define("DB_PASS","monmotdepasse"); define("DB_BDD","itc");?>index.php :<?phprequire"config.php"; mysql_connect(DB_HOST,DB_LOGIN,DB_PASS); mysql_select_db(DB_BDD);function connect_icecast($host, $port){ $fp = @fsockopen($host, $port, $errno, $errstr, 3); if(!$fp){ echo 'Impossible de se connecter : "' . $errno . ' - ' . $errstr . '"<br />'; return false; } else { fputs($fp, 'GET /status2.xsl' . " HTTP/1.0\r\nUser-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)\r\n\r\n"); $page = ''; while(!feof($fp)){ $page .= fread($fp, 1000); } fclose($fp); return $page; }}function kiwi_icecast($host, $port){ $contenu = connect_icecast($host, $port); $tabChamps = array(3 => 'nom', 4 => 'auditeurs', 5 => 'max', 6 => 'titre', 7 => 'artiste'); if ($contenu){ if (preg_match_all('`([[:cntrl:]]/|//::///)([^,]*),([^,]*),([[:digit:]]*),([[:digit:]]*),([^/]*)`', $contenu, $resultat)){ foreach($resultat[2] as $numPoint => $mountName) foreach ($tabChamps as $index => $champ) $tabIce[$mountName][$champ] = $resultat[$index][$numPoint]; return $tabIce; } else { echo 'Pas de contenu !<br />'; return false; } } else{ return false; }}$tabIceCast = kiwi_icecast('192.168.1.56', 8000);if($tabIceCast){ echo 'Titre en cours : ' . $tabIceCast['itc']['titre'];} else { echo 'Parsing impossible';}?>La base de données et la table est crée avec :une colonne 'titre' en varchar de 60 not nullune autre colonne 'date' en timestamps not null et un défaut à current timestampJ'espère que tu pourra m'aider. Lien vers le commentaire Partager sur d’autres sites More sharing options...
tydoo Posté(e) 28 juin 2011 Signaler Share Posté(e) 28 juin 2011 Mais ds icecast il affiche deja le nom du titre jouer .. Je vois pas ce que tu veux faire ^^ Ta un site ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
fr.bs.corporation Posté(e) 28 juin 2011 Auteur Signaler Share Posté(e) 28 juin 2011 Hé bien, mon but c'est d'enregistrer dans la base de donnée à chaque changement de titres pour apres faire un peut un "CT KOI" sur le site d'exclusivités musicales electro-dance que je tiens avec un ami. Lien vers le commentaire Partager sur d’autres sites More sharing options...
tydoo Posté(e) 28 juin 2011 Signaler Share Posté(e) 28 juin 2011 Ba enfaite, il faut que ton fichier php sois dans le site ou il y a ds la BDD : Pour commencer, ton fichier config ne va pas. Tu utilise des défine si tu as plusieur BDD.Donc met ca a la place ds ton fichier config.php : <?php $DB_HOST = '127.0.0.1'; $DB_LOGIN = 'val'; $DB_PASS = 'monmotdepasse'; $DB_BDD = 'itc';?>et au debut de ton login : mysql_connect($DB_HOST,$DB_LOGIN,$DB_PASS); mysql_select_db($DB_BDD);Et tu change juste ca : if($tabIceCast){ echo 'Titre en cours : ' . $tabIceCast['itc']['titre'];} else { echo 'Parsing impossible';}en ca : if($tabIceCast){//AFICHAGE DU TITREecho 'Titre en cours : ' . $tabIceCast['itc']['titre'];//ENREGISTREMENT DU TITRE EN BDD$titre = $tabIceCast['itc']['titre'];$time = time();$insert_bdd= mysql_query(" INSERT INTO donnees VALUES ( $titre, $time) "); } else { echo 'Parsing impossible';}Ensuite dans l'affichage du dernier titre mit tu met ca :$select_titre = mysql_query("SELECT * FROM donnees ORDER by id DESC LIMIT 1");while($v_titre = mysql_fetch_array($select_titre)) {$titre = $v_titre['titre'];$time = $v_titre['date'];}echo 'Le dernier titre jouer est :'.$titre.' le '.date(d.'/'.m.'/'.Y, $time).' à '.date(H.':'.i.':'.s, $time).'';EDIT (MaxPag) : Pas besoin de double post, la fonction "Editer" existe ;) Lien vers le commentaire Partager sur d’autres sites More sharing options...
fr.bs.corporation Posté(e) 28 juin 2011 Auteur Signaler Share Posté(e) 28 juin 2011 Je te remercie pour tout mais j'ai tout mis correctement et rien ne se passe dans la base de données.Je crois qu'il n'arrive pas à insérer les données.J'ai bien réglé les lignes comme ça : //ENREGISTREMENT DU TITRE EN BDD$table = 'donnees';$titre = $tabIceCast['itc']['titre'];$time = time();$insert_bdd= mysql_query(" INSERT INTO $table VALUES ($titre,$time)");} else {echo 'Parsing impossible';} ?>Voici un screen de la table avec les colonnes : Lien vers le commentaire Partager sur d’autres sites More sharing options...
tydoo Posté(e) 28 juin 2011 Signaler Share Posté(e) 28 juin 2011 OK esay un truc tout bette : if($tabIceCast){//AFICHAGE DU TITREecho 'Titre en cours : ' . $tabIceCast['itc']['titre'];//ENREGISTREMENT DU TITRE EN BDD$titre = 'inna';$time = time();$insert_bdd = mysql_query(" INSERT INTO donnees VALUES ( '$titre', '$time') ");if (!$insert_bdd) { die('Requête invalide (bdd titre) : ' . mysql_error()); }else {echo 'enregistrement réussit';}} else { echo 'Parsing impossible';}Pour le type de date : met int ;) Lien vers le commentaire Partager sur d’autres sites More sharing options...
fr.bs.corporation Posté(e) 28 juin 2011 Auteur Signaler Share Posté(e) 28 juin 2011 Bizzare :Requête invalide (bdd titre) : Unknown column 'inna' in 'field list'EDIT : J'ai changé 'inna' par 'titre' et ça s'insère, mais que la date, le champs titre est vide. Lien vers le commentaire Partager sur d’autres sites More sharing options...
tydoo Posté(e) 28 juin 2011 Signaler Share Posté(e) 28 juin 2011 essay ca : if($tabIceCast){//AFICHAGE DU TITREecho 'Titre en cours : ' . $tabIceCast['itc']['titre'];//ENREGISTREMENT DU TITRE EN BDD$titre = $tabIceCast['itc']['titre'];$time = time();$insert_bdd = mysql_query(" INSERT INTO donnees VALUES ( '$titre', '$time') ");if (!$insert_bdd) { die('Requête invalide (bdd titre) : ' . mysql_error()); }else {echo 'enregistrement réussit';}} else { echo 'Parsing impossible';} Lien vers le commentaire Partager sur d’autres sites More sharing options...
fr.bs.corporation Posté(e) 28 juin 2011 Auteur Signaler Share Posté(e) 28 juin 2011 Changé 'inna' par 'titre' et ça s'insère, mais que la date, le titre est vide. Lien vers le commentaire Partager sur d’autres sites More sharing options...
tydoo Posté(e) 28 juin 2011 Signaler Share Posté(e) 28 juin 2011 La le probléme c'est qu'il va ajouter ds la bdd a chaque fois que tu charge la page.Je vais modifier le script por qu'il detecte si il doit le faire ou pas.Il le fera pas si la musique en cours est la meme que la dernière enregistrerHop la : if($tabIceCast){//AFICHAGE DU TITREecho 'Titre en cours : ' . $tabIceCast['itc']['titre'];//ENREGISTREMENT DU TITRE EN BDD$select_titre = mysql_query("SELECT * FROM donnees ORDER by id DESC LIMIT 1");while($v_titre = mysql_fetch_array($select_titre)) {$titre = $v_titre['titre'];}$titre_now = $tabIceCast['itc']['titre'];$time_now = time();//teste si le titre jouer est le meme que le dernier titre enregistrerif ($titre != $titre_now) {$insert_bdd = mysql_query(" INSERT INTO donnees VALUES ( '$titre_now', '$time_now') ");if (!$insert_bdd) { die('Requête invalide (bdd titre) : ' . mysql_error()); }}} else { echo 'Parsing impossible';}Dit moi si ca marche Lien vers le commentaire Partager sur d’autres sites More sharing options...
fr.bs.corporation Posté(e) 28 juin 2011 Auteur Signaler Share Posté(e) 28 juin 2011 On va prendre ca avec le sourir.J'ai mis le code, j'ai mis index.php sur mon serveur puis j'ai changé la page.Super ! Ça fonctionne dans la base de donnée mais il y a une petite erreur :Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\itc\index.php on line 59Voici la ligne 59 : while($v_titre = mysql_fetch_array($select_titre)) {Puis la musique change donc je ré-actualise et le titre précédent s'efface ( ne reste que le timestamp ) et voici l'erreur que j'ai :Titre en cours : , - The Black Eyed Peas - Don't Stop The Party (Goom Edit) (IN THE CLUB) ,<Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\itc\index.php on line 59Requête invalide (bdd titre) : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 't Stop The Party (Goom Edit) (IN THE CLUB) ,<', '1309277669' )' at line 2Voilà ce que ca donne dans la base de données : Lien vers le commentaire Partager sur d’autres sites More sharing options...
tydoo Posté(e) 28 juin 2011 Signaler Share Posté(e) 28 juin 2011 J'ai plus d'erreur moiTitre en cours : , - Marc AnthonyMET CA :if($tabIceCast){//AFICHAGE DU TITREecho 'Titre en cours : ' . $tabIceCast['titre'];//ENREGISTREMENT DU TITRE EN BDD$select_titre = mysql_query("SELECT * FROM donnees ORDER by id DESC LIMIT 1");while($v_titre = mysql_fetch_array($select_titre)) {$titre = $v_titre['titre'];}$titre_now = $tabIceCast['titre'];$time_now = time();//teste si le titre jouer est le meme que le dernier titre enregistrerif ($titre != $titre_now) {$insert_bdd = mysql_query(" INSERT INTO donnees VALUES ( '$titre_now', '$time_now') ");if (!$insert_bdd) { die('Requête invalide (bdd titre) : ' . mysql_error()); }}} else { echo 'Parsing impossible';}echo 'Les 5 dernier titre : <br><br><table><tbody>';$select_titre = mysql_query("SELECT * FROM donnees ORDER by id DESC LIMIT 5");while($v_titre = mysql_fetch_array($select_titre)) {$titre = $v_titre['titre'];$time = $v_titre['date'];echo '<tr><td>'.$titre.'</td><td>Le'.date(d.'/'.m.'/'.Y, $time).' à '.date(H.':'.i.':'.s, $time).'</td></tr>';}echo '</tbody></table>';} Lien vers le commentaire Partager sur d’autres sites More sharing options...
fr.bs.corporation Posté(e) 28 juin 2011 Auteur Signaler Share Posté(e) 28 juin 2011 J'ai modifié entre temps car j'avais enlevé le 'ORDER by id DESC LIMIT 1' mais ca ne change rien alors je l'ai remis. Lien vers le commentaire Partager sur d’autres sites More sharing options...
tydoo Posté(e) 28 juin 2011 Signaler Share Posté(e) 28 juin 2011 bien sur que ca change ^^ C'est ca qui selectionne le dernier id ^^. Essay mon dernier code Lien vers le commentaire Partager sur d’autres sites More sharing options...
fr.bs.corporation Posté(e) 28 juin 2011 Auteur Signaler Share Posté(e) 28 juin 2011 bien sur que ca change ^^ C'est ca qui selectionne le dernier id ^^. Essay mon dernier codeTu m'étonnes qu'il arrive pas à chopper le truc ! J'ai pas de colonne ID !Je la fait en INT auto increment not null ?Edit : C'est encore la m**** LOLMaintenant j'ai ca : Requête invalide (bdd titre) : Column count doesn't match value count at row 1Edit 2 : Ca n'envoie plus à la bdd, sans doute qu'il faut que je lui dise d'insérer l'ID ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
tydoo Posté(e) 28 juin 2011 Signaler Share Posté(e) 28 juin 2011 non del ta colone id ^^ Met ca comme code : if($tabIceCast){//AFICHAGE DU TITREecho 'Titre en cours : ' . $tabIceCast['titre'];//ENREGISTREMENT DU TITRE EN BDD$select_titre = mysql_query("SELECT * FROM donnees ORDER by date DESC LIMIT 1");while($v_titre = mysql_fetch_array($select_titre)) {$titre = $v_titre['titre'];}$titre_now = $tabIceCast['titre'];$time_now = time();//teste si le titre jouer est le meme que le dernier titre enregistrerif ($titre != $titre_now) {$insert_bdd = mysql_query(" INSERT INTO donnees VALUES ( '$titre_now', '$time_now') ");if (!$insert_bdd) { die('Requête invalide (bdd titre) : ' . mysql_error()); }}} else { echo 'Parsing impossible';}echo 'Les 5 dernier titre : <br><br><table><tbody>';$select_titre = mysql_query("SELECT * FROM donnees ORDER by date DESC LIMIT 5");while($v_titre = mysql_fetch_array($select_titre)) {$titre = $v_titre['titre'];$time = $v_titre['date'];echo '<tr><td>'.$titre.'</td><td>Le'.date(d.'/'.m.'/'.Y, $time).' a '.date(H.':'.i.':'.s, $time).'</td></tr>';}echo '</tbody></table>';} Lien vers le commentaire Partager sur d’autres sites More sharing options...
fr.bs.corporation Posté(e) 28 juin 2011 Auteur Signaler Share Posté(e) 28 juin 2011 T'aurai pas une adresse messenger, ce serait plus simple ? ^^ Lien vers le commentaire Partager sur d’autres sites More sharing options...
tydoo Posté(e) 28 juin 2011 Signaler Share Posté(e) 28 juin 2011 yes tydoo34@hotmail.fr Lien vers le commentaire Partager sur d’autres sites More sharing options...
tydoo Posté(e) 28 juin 2011 Signaler Share Posté(e) 28 juin 2011 Pour ce que cela interesse ;) : CA DONNE CAFICHIER index.php : <?phprequire"config.php"; mysql_connect($DB_HOST,$DB_LOGIN,$DB_PASS); mysql_select_db($DB_BDD);function time_t($iTime) { $iTimeDifference = time() - $iTime ; if( $iTimeDifference<0 ) { return; } $iSeconds = $iTimeDifference ; $iMinutes = round( $iTimeDifference/60 ); $iHours = round( $iTimeDifference/3600 ); $iDays = round( $iTimeDifference/86400 ); $iWeeks = round( $iTimeDifference/604800 ); $iMonths = round( $iTimeDifference/2419200 ); $iYears = round( $iTimeDifference/29030400 ); if( $iSeconds<60 ) return 'Il y a ' . $iSeconds . ' seconde' . ( $iSeconds>1 ? 's' : '' ); elseif( $iMinutes<60 ) return 'Il y a ' . $iMinutes . ' minute' . ( $iMinutes>1 ? 's' : '' ); elseif( $iHours<24 ) return 'Il y à ' . $iHours . ' heure' . ( $iHours>1 ? 's' : '' ); elseif( $iDays<2 ) return 'Hier à '.date(H.':'.i,$iTime); else return 'le '.date(d.'/'.m.'/'.Y.' à '.H.':'.i,$iTime); } function connect_icecast($host, $port){ $fp = @fsockopen($host, $port, $errno, $errstr, 3); if(!$fp){ echo 'Impossible de se connecter : "' . $errno . ' - ' . $errstr . '"<br />'; return false; } else { fputs($fp, 'GET /status2.xsl' . " HTTP/1.0\r\nUser-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9)\r\n\r\n"); $page = ''; while(!feof($fp)){ $page .= fread($fp, 1000); } fclose($fp); return $page; }}function kiwi_icecast($host, $port){ $contenu = connect_icecast($host, $port); $tabChamps = array(3 => 'nom', 4 => 'auditeurs', 5 => 'max', 6 => 'titre', 7 => 'artiste'); if ($contenu){ if (preg_match_all('`([[:cntrl:]]/|//::///)([^,]*),([^,]*),([[:digit:]]*),([[:digit:]]*),([^/]*)`', $contenu, $resultat)){ foreach($resultat[2] as $numPoint => $mountName) foreach ($tabChamps as $index => $champ) $tabIce[$mountName][$champ] = $resultat[$index][$numPoint]; return $tabIce; } else { echo 'Pas de contenu !<br />'; return false; } } else{ return false; }}$tabIceCast = kiwi_icecast('192.168.1.56', 8000);/////////////////////////////////////////////////AFICHAGE DU TITREif($tabIceCast){$titre_now = mysql_real_escape_string(htmlspecialchars(stripcslashes(trim($tabIceCast['itc']['titre']))));$time_now = time();echo '<div style="margin-left:20px;margin-top:20px;margin-bottom:10px; font-size:25px;"><b>Titre en cours : </b>' .$titre_now.'</div>';//ENREGISTREMENT DU TITRE EN BDD$select_titre = mysql_query("SELECT * FROM radio ORDER by id DESC LIMIT 1");while($v_titre = mysql_fetch_array($select_titre)) {$titre = $v_titre['titre'];}if($titre != $titre_now) {$insert_bdd = mysql_query(" INSERT INTO radio VALUES ( '','$titre_now', '$time_now') ");if (!$insert_bdd) { die('Requête invalide (bdd titre) : ' . mysql_error()); }}}else { echo 'Parsing impossible';}$dernier_titre = $_GET['dernier_titre'];if (empty($dernier_titre) || $dernier_titre == '0') {$dernier_titre = '5';}echo '<div style="margin-left:20px;"><table border="0" cellpadding="5" cellspacing="5" class="rounded-r10" style="color:white; background-image:url(\'http://www.mdl-champollion.fr/img/bg.png\');"><tbody><tr><td><b>Les '.$dernier_titre.' Dernier titres</b></td><td style="vertical-align:center; text-align:right"><form method="get" action="index.php">Voir les <input name="dernier_titre" size="1"> Dernier <span class="input-bleu2" style="margin-top:2px;"><input class="button-bleu2" type="submit" value="Ok"></span></form></td></tr>';$select_titre = mysql_query("SELECT * FROM radio ORDER by id DESC LIMIT $dernier_titre");while($v_titre = mysql_fetch_array($select_titre)) {$titre = $v_titre['titre'];$time = $v_titre['time'];echo '<tr><td style="border-bottom:1px solid grey;">'.$titre.'</td><td style="text-align:right;border-bottom:1px solid grey;">'.time_t($time).'</td></tr>';}echo '</tbody></table></div>';?>Fichier config.php : <?php $DB_HOST = 'SERVEUR'; $DB_LOGIN = 'LOGIN DE LA BASE DE DONNEE'; $DB_PASS = 'PASSE SQL'; $DB_BDD = 'LE NOM DE LA BASE DE DONEE';?>CRéation de la base de donnée en code sql : CREATE TABLE IF NOT EXISTS `radio` ( `id` int(11) NOT NULL AUTO_INCREMENT, `titre` varchar(1000) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL, `time` int(10) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;Dites moi se cela vous va :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
fr.bs.corporation Posté(e) 28 juin 2011 Auteur Signaler Share Posté(e) 28 juin 2011 Remplacer $titre_now = $tabIceCast['itc']['titre'];par $titre_now = $tabIceCast['NOM DU FLUX ICECAST']['titre']; Lien vers le commentaire Partager sur d’autres sites More sharing options...
tydoo Posté(e) 29 juin 2011 Signaler Share Posté(e) 29 juin 2011 Je suis entrain de finaliser le scrip avec une fonction de recherche pour les titre avec date et horaire :)Avancement : http://www.mdl-champollion.fr/colo/radio/script/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
fr.bs.corporation Posté(e) 29 juin 2011 Auteur Signaler Share Posté(e) 29 juin 2011 D'ailleurs j'ai trouvé le moyen de faire pareil avec ShoutCast tydoo, je te montrerai car je suis obligé de diffuser avec SouthCast maintenant... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.