Code : Tout sélectionner
+-------+--------------------------------------------------+---------+------------+------------+
| Rang | Pseudo | Bons | Liquide | Total |
+-------+--------------------------------------------------+---------+------------+------------+
| 2 | lthierry | 0 | 34 828 850 | 34 828 850 |
| 3 | xaraud | 0 | 27 117 986 | 27 117 986 |
| 8 | starfighter </profile/homepage.html?accId=21884> | 490 770 | 7 912 930 | 8 403 700 |
| 19 | trickyz </profile/homepage.html?accId=15495> | 552 647 | 3 393 044 | 3 945 691 |
| 28 | westward | 64 | 2 466 067 | 2 466 131 |
| 47 | daze | 34 103 | 1 227 803 | 1 261 906 |
| 49 | jean-no | 0 | 1 165 013 | 1 165 013 |
| 65 | pharmoboy | 292 749 | 606 015 | 898 764 |
| 78 | minolta | 0 | 611 405 | 611 405 |
| 99 | michel2b | 0 | 462 673 | 462 673 |
| 113 | tofio | 0 | 395 801 | 395 801 |
| 129 | tchoute | 0 | 353 422 | 353 422 |
| 143 | dok | 0 | 324 941 | 324 941 |
| 234 | lack | 53 743 | 118 965 | 172 708 |
| 253 | hoocker | 0 | 155 761 | 155 761 |
| 997 | docteurslump </profile/homepage.html?accId=2765> | 0 | 34 902 | 34 902 |
| 1 438 | motx | 0 | 25 348 | 25 348 |
| 3 892 | aliastor </profile/homepage.html?accId=9605> | 0 | 9 988 | 9 988 |
| 4 837 | ziggy | 0 | 6 532 | 6 532 |
| 8 920 | monforty | 0 | 2 000 | 2 000 |
+-------+--------------------------------------------------+---------+------------+------------+
Il a fait tout ça avec ses (nombreuses) petites mains pleines de doigtssinon comment tu as fais le tableau?
// ouverture du fichier (pas changé)
$txt = file_get_contents('http://dtom.hd.free.fr/fichiers/temp/club.html');
// extraction du bloc RESULTATS (pas changé)
preg_match('#Total\s+(.*?)\r\n\r\n#s', $txt, $out);
// extractions des lignes (rajouté le tab comme séparateur de fin de ligne)
$lignes = explode("\t\r\n", $out[1]);
// préparation tableau pour injection dans bdd (on remplace le \r\n par tab dans chaque ligne)
foreach($lignes as $v){
$v = str_replace(array("\r\n", "*"), array("\t", null), $v);
list($rang, $pseudo, $bons, $liquide, $total) = explode("\t", $v);
echo "Rang: $rang -- Pseudo: $pseudo -- Bons: $bons -- Liquide: $liquide -- Total: $total<br>";
}
Bon, là il faudrait que tu fasses un petit effort de ton côté pour comprendre se que fait mon bout de code. Ca t'aidera pour la suite.dtom, il est inutile de créer un nouveau post, ça ne fait que perdre ceux qui n'ont pas suivi ici, je reporte donc ici et supprime l'autre.Bonjour,
Je recrée un post pour améliorer la compréhension de ma demande et la lisibilité...
Voici donc la fonction de mon code et mon problème :
Mon code lis un fichier ( http://dtom.hd.free.fr/fichiers/TEMP/club.html ), et récupere les informations contenu de la ligne 49 a 74.
Ensuite je met les données (total, date, rang) dans une table ou la crée si elle existe pas.
Bref le code marchait a merveille, sauf quand un pseudo à un lien. Le problème c'est que le code va a la ligne. Retirer ce lien avec striptag ne sert à rien.
Voici le code php
<? $pass=md5($_GET['pass']); $passMD5="ab24dce4*****353a13330757e******"; //protége le générateur par un mot de passe if ($pass==$passMD5){ include ("config.php"); //Verifie si on peut se connecter a la base sql $connect=mysql_connect($host,$user,$pass) or die ("Impossible de se connecter"); mysql_select_db($base, $connect) or die ("Impossible de selectionner la base de donnees"); //vérifie la date du dernier enregistrement $result=mysql_query ("SELECT * FROM derniere_date WHERE ID='1'") or die ("Impossible d'executer la requete"); $row = mysql_fetch_array($result); $lastdate = $row ["lastdate"]; $date=date("Y-m-d"); // ouverture du fichier $txt = file_get_contents('http://dtom.hd.free.fr/nf/club.html'); // extraction du bloc RESULTATS preg_match('#Total\s+(.*?)\r\n\r\n#s', $txt, $out); // extractions des lignes $lignes = explode("\r\n", $out[1]); // préparation tableau pour injection dans bdd $aInserer = array(); foreach($lignes as $k => $v){ $v = str_replace('*', null, $v); $aInserer[] = preg_split("#\t#", $v, -1, PREG_SPLIT_NO_EMPTY); } // $k est l'indice d'une ligne du tableau (pas utilisé ici) et $v sa valeur foreach($lignes as $k => $v){ $v = str_replace('*', null, $v); list($rang, $pseudo, $bons, $liquide, $total) = explode("\t", $v); $pseudo = strip_tags($pseudo); $rang = str_replace(' ', null, $rang); $bons = str_replace(' ', null, $bons); $liquide = str_replace(' ', null, $liquide); $total = str_replace(' ', null, $total); /*##### écriture bdd #####*/ $table="points_".$pseudo; $sql_create = "CREATE TABLE IF NOT EXISTS $table (id INT (10) not null AUTO_INCREMENT, doublons VARCHAR (255) not null, rang VARCHAR (255) not null, date DATE NOT NULL default '0000-00-00', PRIMARY KEY (id))"; $req_create = mysql_db_query($base, $sql_create) or die(mysql_error()); //recupere la derniere id $id=0; $result1=mysql_query ("SELECT * FROM $table ORDER by ID") or die ("Requete impossible"); while ($row1 = mysql_fetch_array($result1)) { $id = $row1["id"]; $date_bdd = $row1["date"]; } $id=$id+1; // if($date_bdd!=$date){ //envoie des données $query = mysql_query ("insert into $table (id, doublons, rang, date) values ('$id', '$total', '$rang', '$date')"); $status="<font color="#008000">OK</font>"; }else{$status="<font color="#FF0000">ECHEC!</font>"; } echo "<br>Rang: $rang -- Pseudo: $pseudo -- Bons: $bons -- Liquide: $liquide -- Total: $total $status<br>\n"; /*##### fin écriture bdd #####*/ } } else{ echo("<b><center>Mot de passe erroné!</b></center>");} ?>
Merci d'avance.
ps : voici ce que ça donne online : http://dtom.hd.free.fr/nf/