youdontcare | code pour récupérer une url :
Code :
- //
- // Send a request and return its response
- //
- function HTTPRequest($sitename, $request)
- {
- global $socket;
- // Get the IP address for the target host
- $address = gethostbyname ($sitename);
- // Get the port for the WWW service
- $service_port = getservbyname ('www', 'tcp');
- // Create a TCP/IP socket
- $socket = socket (AF_INET, SOCK_STREAM, 0);
- if ($socket < 0) echo "socket() failed: reason: " . strerror ($socket) . "<br>";
- // Connect
- $result = connect ($socket, $address, $service_port);
- if ($result < 0) echo "connect() failed.\nReason: ($result) " . strerror($result) . "<br>";
- // Send request
- write ($socket, $request, strlen ($request));
- // Grab result
- $outresult = "";
- while (read ($socket, $out, 2048) >= 0) {
- $outresult .= $out;
- }
- // Close socket
- close ($socket);
- return $outresult;
- }
|
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] |