récupérer les données d'une page web

Guénaël
Invité n'ayant pas de compte PHPfrance

14 févr. 2006, 11:48

Bonjour,
Je suis décidemment trop novice ...

Je doit récupérer des données sur cette page pour ensuite les insérer dans un tableau:
http://xwis.net/xcl/?lid=1&pname=euroduck1
(cette page n'est qu'un exemple car une boucle va chercher de nombreuses pages)

voici la source de cett page :

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <script type="text/javascript" src="xcl.js"></script> <script type="text/javascript">page_top(0); page_search(1);t0(new Array(130,1,30932,'euroduck1',23,5,624,624,1139774968,1,0), 0);page_bottom(1139902712);</script>
les données qui m'interessent sont dans ce cas : "130" (4e ligne juste apres "array(" ) et "624" (le premier, 6 virgules plus loin).

Je n'arrive pas à trouver le code qui me donnera :
: euroduck1 : rank = 130 : points = 624 :

Mammouth du PHP | 1967 Messages

14 févr. 2006, 19:43

C'est une proposition il y a surement mieux mais ..

$a est la variable contenant le code
<?php
$b = explode ("(",$a);//je récupère la partie aprés chaque paranthèse dans un tableau
$c = explode(".",$b[3]);//je divise la ligne qui contient les info à retrouver
$resultat = ": euroduck1 rank = ".$c[0]." : pôints = ".$c[6];
?>
Je ne l'ai pas tester il faut verifier les numèros entre crochet
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Invité
Invité n'ayant pas de compte PHPfrance

15 févr. 2006, 19:30

Magnifique !
J'ai en effet modifié quelques parametres mais le code fonctionne à merveille.

Merci beaucoup.

Invité
Invité n'ayant pas de compte PHPfrance

15 févr. 2006, 23:40

Question subsidiaire :

Ce programme est en fait inseré dans une boucle qui va chercher les valeurs pour plusieurs joueurs.
Je vais chercher les pseudos dans la base de données pour constituer l'url où chercher les valeurs.
<?php

// connection à la bdd et à la table
mysql_connect("localhost", "", "") or
die("Impossible de se connecter : " . mysql_error());
mysql_select_db("nathalie_test");

// Recherche des challengers sur la bdd
$result = mysql_query("SELECT user_id, pseudo, username FROM nuke_users where pseudo<>\" \"");
while ($challengeur = mysql_fetch_array($result, MYSQL_NUM)) {

// recherche des pages des challengeurs sur xwis
$url1 = "http://xwis.net/xcl/?lid=1&pname=";
$url = $url1. $challengeur[1];

// recherche des points et du rank de chaque challengeur
$a = file_get_contents($url);
$b = explode ("(",$a);//je récupère la partie aprés chaque paranthèse dans un tableau
$c = explode(",",$b[4]);//je divise la ligne qui contient les info à retrouver

$tableau = array ($challengeur[2], $challengeur[1], $c[0], $c[6]);
print_r($tableau);echo "<br>";

}
mysql_free_result($result);// Libère le résultat de la mémoire
?>
Le programme fonctionne comme je le souhaite cependant j'aimerais que les lignes de mon tableau soient dans l'ordre croissant du rang des joueurs (valeur qui est dans $c[6] à chaque boucle.

En plus, est-il possible de lui assigné un rang dans le tableau ?

Mammouth du PHP | 1967 Messages

17 févr. 2006, 00:59

pour ca il faut afficher seulement a la fin

et créer dans chaque boucle un tableau global

Remplace cela
$tableau = array ($challengeur[2], $challengeur[1], $c[0], $c[6]); 
print_r($tableau);echo "<br>"; 
par
$tableau[$c[6]] = array ($challengeur[2], $challengeur[1], $c[0], $c[6]);
a la fin des boucle
ksort ($tableau);
foreach ($tableau as $sous_tableau)
{
     print_r($sous_tableau);
     echo "<br>";
}
!!! code non tester

je peux me tromper ou alors prendre un chemin trés compliqué peut ètre

PS je te conseille d'utiliser des noms de variable plus explicite que a,b,c,...
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Invité
Invité n'ayant pas de compte PHPfrance

07 mars 2006, 17:55

Ca y est, je m'y suis remis :-)
Ca marche parfaitement.
Merci beaucoup pour ces conseils

Mammouth du PHP | 1967 Messages

07 mars 2006, 18:22

de rien du tout, il reste juste à demander au plus gentil des modérateur de mettre résolu sur ton sujet.

Pense à t'inscrire, tu y gagnera beaucoup
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Petit nouveau ! | 5 Messages

09 mars 2006, 11:40

Voilà, c'est fait,

et comme je suis un peu neuneu, j'aurai souvent des questions ... :mrgreen: