extraire current song pour une radio shoutcast

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : extraire current song pour une radio shoutcast

Re: extraire current song pour une radio shoutcast

par stealth35 » 19 oct. 2010, 23:20

c'est pas top a gérer ce genre d'erreur, tu peux faire un @ devant au pire (mais j'ai pas de mieux, a part peux être utiliser set_error_handler)
$context = stream_context_create();
stream_context_set_option($context, 'http', 'header', 'user-agent:' . $_SERVER['HTTP_USER_AGENT']);

libxml_set_streams_context($context);
libxml_use_internal_errors(true);

$doc = new DOMDocument();
$load = @$doc->loadHTMLFile('http://str80.streamakaci.com/');

if($load)
{
    $xpath = new DOMXPath($doc);
    $query = $xpath->query('//td[contains(., "Current Song")]/../td[position() = last()]');

    $song = $query->item(0)->nodeValue;
    echo $song;
}
else
{
    echo 'serveur down';
}

Re: extraire current song pour une radio shoutcast

par noze1st » 19 oct. 2010, 22:39

ou peut-être un timeout qq part???

Re: extraire current song pour une radio shoutcast

par noze1st » 19 oct. 2010, 22:15

encore une tit' question :oops:
Lorsque le serveur est down j'ai bien évidemment un beau
Warning: DOMDocument::loadHTMLFile(http://str80.streamakaci.com/) [domdocument.loadhtmlfile]: failed to open stream: Connection timed out in

Est-il possible de faire une condition du style if (le serveur répond pas) {echo 'serveur down'} else {le script qui va bien};

Re: extraire current song pour une radio shoutcast

par stealth35 » 19 oct. 2010, 18:13

merci beaucoup, ça marche : je vais étudier tout ça =D>
Dis moi y'a un moyen d'apprendre ce ce code diabolique avec les //*^^[}' (même un tire de bouquin)
encore merci :D
c'est du xpath :wink:
http://fr.wikipedia.org/wiki/XPath
http://www.w3.org/TR/xpath/

Re: extraire current song pour une radio shoutcast

par noze1st » 19 oct. 2010, 18:11

merci beaucoup, ça marche : je vais étudier tout ça =D>
Dis moi y'a un moyen d'apprendre ce ce code diabolique avec les //*^^[}' (même un tire de bouquin)
encore merci :D

Re: extraire current song pour une radio shoutcast

par stealth35 » 19 oct. 2010, 17:26

tu peux direct mettre le user-agent quand tu le charge, et les warning c'est normale leur page n'est pas valide, il faut éteindre les erreurs
la requete pour allé chercher le son c'est pareil y'a pas d'id ni rien,
$context = stream_context_create();
stream_context_set_option($context, 'http', 'header', 'user-agent:' . $_SERVER['HTTP_USER_AGENT']);

libxml_set_streams_context($context);
libxml_use_internal_errors(true);

$doc = new DOMDocument();
$doc->loadHTMLFile('http://str80.streamakaci.com/');

$xpath = new DOMXPath($doc);
$query = $xpath->query('//td[contains(., "Current Song")]/../td[position() = last()]');

$song = $query->item(0)->nodeValue;

echo $song;
donc on va chercher :
le dernier noeud du type "td" du noeud parent au noeud du type "td" qui contient "Current Song" :mrgreen:

Re: extraire current song pour une radio shoutcast

par noze1st » 19 oct. 2010, 17:18

peux tu être un peu plus précis :priere:
Pour l'instant j'ai des warning avec fsockopen ou avec DOMDocument
impossible d'accéder à l'information grrrrr

Re: extraire current song pour une radio shoutcast

par stealth35 » 19 oct. 2010, 16:56

t'as regarder dans la doc de shoutcast comment on récupère les données de l'extérieur ?
je cherche et cherche de partout depuis des jours :(
c'est quand même dingue de se prendre la tête pour un truc qui devrait être simple : afficher le titre en cours d'une radio web
dans l'admin y'a pas une page XML ?

mais sinon c'est pas grave fais ton code de depart melangé au DOMDocument sauf que cette fois ci tu fais loadHTML($content)

Re: extraire current song pour une radio shoutcast

par noze1st » 19 oct. 2010, 16:53

t'as regarder dans la doc de shoutcast comment on récupère les données de l'extérieur ?
je cherche et cherche de partout depuis des jours :(
c'est quand même dingue de se prendre la tête pour un truc qui devrait être simple : afficher le titre en cours d'une radio web

Re: extraire current song pour une radio shoutcast

par stealth35 » 19 oct. 2010, 16:11

t'as regarder dans la doc de shoutcast comment on récupère les données de l'extérieur ?

Re: extraire current song pour une radio shoutcast

par noze1st » 19 oct. 2010, 16:04

ta ligne de code ne renvoie pas d'erreur mais le résultat le contient pas current song que je cherche à récupérer... :

Code : Tout sélectionner

Array ( [0] => ICY 200 OK [icy-notice1] => This stream requires Winamp [icy-notice2] => SHOUTcast Distributed Network Audio Server/Linux v1.9.8 [icy-name] => ALOUETTE [icy-genre] => Top 40 [icy-url] => http://www.alouette.fr [content-type] => audio/mpeg [icy-pub]
merci de chercher avec moi

Re: extraire current song pour une radio shoutcast

par stealth35 » 19 oct. 2010, 15:39

a mon avis il attend un User agent, mais surpise si tu fais juste :
print_r(get_headers('http://str80.streamakaci.com/', true));
t'as tout les infos direct :wink: pas besion de parser la page

Re: extraire current song pour une radio shoutcast

par noze1st » 19 oct. 2010, 15:28

ok ok je me suis peut être emporté un peu vite :oops:
j'essaie
$doc = new DOMDocument();
$doc->loadHTMLFile("http://str80.streamakaci.com/index.html");
et j'ai :
Warning: DOMDocument::load(http://str80.streamakaci.com/index.html) [domdocument.load]: failed to open stream: HTTP request failed! ICY 404 Resource Not Found in /homez.383 etc.
pourtant la page existe bien
http://str80.streamakaci.com/index.html
merci d'avance

Re: extraire current song pour une radio shoutcast

par stealth35 » 19 oct. 2010, 14:14

ça fait deux sujet que tu me réponds la même chose stealth35!!!
Alors je suis allé voir la doc sur domdocument mais c'est pour extraire un .xml : là c'est pas le cas (et dans l'autre sujet non plus).
expliques toi un peu ou arrêtes de répondre aussi succinctement!
c'est que t'as pas tout lu, DOMDocument c'est faire pour lire du DOM et du DOM c'est du HTML, et n'oublie pas que je suis pas obligé de te répondre.

Re: extraire current song pour une radio shoutcast

par noze1st » 19 oct. 2010, 14:09

ça fait deux sujet que tu me réponds la même chose stealth35!!!
Alors je suis allé voir la doc sur domdocument mais c'est pour extraire un .xml : là c'est pas le cas (et dans l'autre sujet non plus).
expliques toi un peu ou arrêtes de répondre aussi succinctement!