[php] Recuperer le programme TV

Recuperer le programme TV [php] - Programmation

Marsh Posté le 08-08-2001 à 11:44:21    

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!

Reply

Marsh Posté le 08-08-2001 à 11:44:21   

Reply

Marsh Posté le 08-08-2001 à 11:56:32    

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().

Reply

Marsh Posté le 08-08-2001 à 12:02:06    

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().  



Reply

Marsh Posté le 08-08-2001 à 12:22:58    

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]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed