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

 


Dernière réponse
Sujet : [php] Recuperer le programme TV
youdontcare code pour récupérer une url :
 

Code :
  1. //
  2. // Send a request and return its response
  3. //
  4. function HTTPRequest($sitename, $request)
  5. {
  6. global $socket;
  7. // Get the IP address for the target host
  8. $address = gethostbyname ($sitename);
  9. // Get the port for the WWW service
  10. $service_port = getservbyname ('www', 'tcp');
  11. // Create a TCP/IP socket
  12. $socket = socket (AF_INET, SOCK_STREAM, 0);
  13. if ($socket < 0)     echo "socket() failed: reason: " . strerror ($socket) . "<br>";
  14. // Connect
  15. $result = connect ($socket, $address, $service_port);
  16. if ($result < 0)  echo "connect() failed.\nReason: ($result) " . strerror($result) . "<br>";
  17. // Send request
  18. write ($socket, $request, strlen ($request));
  19. // Grab result
  20. $outresult = "";
  21. while (read ($socket, $out, 2048) >= 0) {
  22.  $outresult .= $out;
  23. }
  24. // Close socket
  25. close ($socket);
  26. return $outresult;
  27. }


 
dans ton cas, tu l'appelles comme ça :
 
$page = HTTPRequest("www.eurosport-france.com", "GET /tv/tvschedule.asp?DAY=0 HTTP/1.0\r\n\r\n" );
 
pour plus d'infos, mate la doc du protocole http.
 
parser = récupérer des infos dans un bout de texte quelconque. ici, tu veux récupérer le programme (les infos) dans une page d'eurosport (le texte quelconque). après une courte analyse de la page, tu t'aperçois que celle-ci est stockée dans une table, chaque heure occupant une ligne.
 
le but : identifier les lignes, et au sein de celles-ci, récupérer les infos. sachant qu'une ligne commence par <tr> et chaque info est imbriquée dans un <td>.
 
sachant que pour chercher une string dans une string, on utilise strstr(). pour avoir un morceau précis de la string, substr(). ensuite, explode() peut également être utile.
 
par ex ....
 
$line = strstr($page, "<tr>" );  // pour renvoyer la sous-string qui débute à la première ligne
$rowstart = strstr($line, "<td" ); // pour commencer à chercher la première cellule
$rowend = strstr($rowstart, ">" ); // et hop, tu obtiens ton premier contenu précédé d'un ">". d'où l'utilité de substr().
 
vala, pas compliqué, juste un ptit procédé itératif. et quand tu maîtrisera ça tu pourra le faire à coups d'expression régulières, c'est moins lourd.

 

[edtdd]--Message édité par youdontcare--[/edtdd]


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
youdontcare code pour récupérer une url :
 

Code :
  1. //
  2. // Send a request and return its response
  3. //
  4. function HTTPRequest($sitename, $request)
  5. {
  6. global $socket;
  7. // Get the IP address for the target host
  8. $address = gethostbyname ($sitename);
  9. // Get the port for the WWW service
  10. $service_port = getservbyname ('www', 'tcp');
  11. // Create a TCP/IP socket
  12. $socket = socket (AF_INET, SOCK_STREAM, 0);
  13. if ($socket < 0)     echo "socket() failed: reason: " . strerror ($socket) . "<br>";
  14. // Connect
  15. $result = connect ($socket, $address, $service_port);
  16. if ($result < 0)  echo "connect() failed.\nReason: ($result) " . strerror($result) . "<br>";
  17. // Send request
  18. write ($socket, $request, strlen ($request));
  19. // Grab result
  20. $outresult = "";
  21. while (read ($socket, $out, 2048) >= 0) {
  22.  $outresult .= $out;
  23. }
  24. // Close socket
  25. close ($socket);
  26. return $outresult;
  27. }


 
dans ton cas, tu l'appelles comme ça :
 
$page = HTTPRequest("www.eurosport-france.com", "GET /tv/tvschedule.asp?DAY=0 HTTP/1.0\r\n\r\n" );
 
pour plus d'infos, mate la doc du protocole http.
 
parser = récupérer des infos dans un bout de texte quelconque. ici, tu veux récupérer le programme (les infos) dans une page d'eurosport (le texte quelconque). après une courte analyse de la page, tu t'aperçois que celle-ci est stockée dans une table, chaque heure occupant une ligne.
 
le but : identifier les lignes, et au sein de celles-ci, récupérer les infos. sachant qu'une ligne commence par <tr> et chaque info est imbriquée dans un <td>.
 
sachant que pour chercher une string dans une string, on utilise strstr(). pour avoir un morceau précis de la string, substr(). ensuite, explode() peut également être utile.
 
par ex ....
 
$line = strstr($page, "<tr>" );  // pour renvoyer la sous-string qui débute à la première ligne
$rowstart = strstr($line, "<td" ); // pour commencer à chercher la première cellule
$rowend = strstr($rowstart, ">" ); // et hop, tu obtiens ton premier contenu précédé d'un ">". d'où l'utilité de substr().
 
vala, pas compliqué, juste un ptit procédé itératif. et quand tu maîtrisera ça tu pourra le faire à coups d'expression régulières, c'est moins lourd.

 

[edtdd]--Message édité par youdontcare--[/edtdd]

yepyep007 Je suis hebergé par OVH.
Je pense qu'ils acceptent le socket.
 
Par contre je ne sais pas du tout comment faire ce que tu me dit.
Tu ne pourrait pas me fournir un petit bout de code php?
 
Et quelle est le principe de "parser"? comment le realiser?
 
Merci d'avance
A+
 

youdontcare a écrit a écrit :

en php : tu récupères le fichier avec une socket, et tu le parses ... évidemment il faut que ton hébergeur accepte les sockets. ou fsockopen().  



youdontcare en php : tu récupères le fichier avec une socket, et tu le parses ... évidemment il faut que ton hébergeur accepte les sockets. ou fsockopen().
yepyep007 salut,
 
Est ce que vous avez une idee ou une solution pour recuperer sur un site le programme tv (et le mettre eventuellement dans une base mysql)?
 
ex: si je veux recuperer http://www.eurosport-france.com/tv [...] .asp?DAY=0
et le mettre dans une base mysql
 
Merci d'avance de m'aider!

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)