alexsp112 Posté 11 Septembre 2007 Posté 11 Septembre 2007 Bonsoir à tous les Webmasteurs j'ai une petite question simple en apparence mais telment compliqué au fond... Sur le site de la fédération de handball il y a des pages de classements des équipes (disons équipe A, B, C pour simplifié) et donc chaque semaines je recopie le classement de chaque équipes (A, B, C) sur mon site. Etant très fainéant et surtout en ayant marre de recopier des tableaux semaines après semaines, je me demande si par hazard il n'y aurait pas moyen d'inclure dans mes pages juste le tableau de classement du site de la fédération Par exemple pour le championnat séniors Garçons ( lien classement : http://www.ff-handball.org/ffhb/html/les-c...=Poule%20unique ) et ma page ou je veux inclure juste le tableau : http://www.feurshandball.fr/seniorsgar%E7onscl.html si ce n'est pas possible ou alors si ca l'est mais dans un autre language dites-moi le même si perso je vois que le PHP Merci d'avance...
marcb Posté 11 Septembre 2007 Posté 11 Septembre 2007 Bonsoir, Va voir du côté de http://fr.php.net/curl. C'est une librairie (peut-être installée chez ton hébergeur) qui te permet d'accéder à du contenu sur le net. Après, une fois que tu as lu la bonne page, c'est à toi de l'analyser pour y trouver ton tableau. M
xunil Posté 12 Septembre 2007 Posté 12 Septembre 2007 Si l'on veut utiliser les données d'une autre page HTML de façon dynamique, on peut trouver un exemple de cela en Ajax: http://www.anaa.eu/demo-responseHTML.html Il y a un petit framework à charger. Mais si on veut les utiliser de façon statique, le PHP serait suffisant.
alexsp112 Posté 12 Septembre 2007 Auteur Posté 12 Septembre 2007 bonjour J'ai essayé vos deux solutions mais je ne n'arrive pas comprendre comment elles fonctionnent ( faut dire que mes connaissance sont assez limitées ) Si vous avez un tuto ( en francais de préférence ) ou 2-3 explications ca serait cool Merci ! a+
alexsp112 Posté 12 Septembre 2007 Auteur Posté 12 Septembre 2007 A oui j'allais oublier de vous demander (vous moquez pas si je dit un truc idiot) C'est pas possible de faire un code en PHP du style : <?php -- Iclude -- lien vers classements de la fédé seulement ligne x a y (donc les lignes correspondant au tableau) ?> c'est schématique bien entendu mais php permet pas de faire ça ?
marcb Posté 12 Septembre 2007 Posté 12 Septembre 2007 c'est schématique bien entendu mais php permet pas de faire ça ? Non, on ne peut pas ;-( En plus ce serait peu fiable, parce que si le site change un peu le format de sa page, ton site est tout perdu... Si tu ne veux/peux pas utiliser cURL.il faut se tourner vers la fonction fsockopen(). L'exemple 1727 de cette page : http://fr3.php.net/manual/fr/function.fsockopen.php est un bon début, il faut ensuite analyser le contenu retourné par fgets, et chercher son tableau. M
xunil Posté 12 Septembre 2007 Posté 12 Septembre 2007 (modifié) <?php -- Iclude -- lien vers classements de la fédé seulement ligne x a y (donc les lignes correspondant au tableau) ?> Si le code affiche le tableau et qu'il est sur le même site, cela ne pose aucun problème. Sinon il faut que le code PHP récupère la page, extraie les informations, pas simple. Peut-être existe-t'il un script qui puisse le faire? Voir hotscripts.com, needscript.com etc... Modifié 12 Septembre 2007 par xunil
zola2 Posté 13 Septembre 2007 Posté 13 Septembre 2007 Tu peux utiliser la commande fopen(); pour ouvrir la page distante et fget() pour recuperer le code source que tu peux ensuite reintregrer directement dans ta page ou le retravailler et l'adapter à ton gout avec php.
alexsp112 Posté 13 Septembre 2007 Auteur Posté 13 Septembre 2007 Bonjour Si je comprend ton code Zola2 c'est : fopen("url de la page à importer") ; et fget("ligne x à y") ; Je sais je suis lourd au bout d'un moment... j'y peut rien je suis comme ça...
captain_torche Posté 13 Septembre 2007 Posté 13 Septembre 2007 Ce n'est malheureusement pas si simple : Il faut tout d'abord lire le fichier en entier, puis isoler le tableau avec une expression régulière. Dans l'idéal, il faudrait aussi mettre le résultat en cache, pour ne pas avoir à aller le chercher à chaque chargement de la page.
captain_torche Posté 13 Septembre 2007 Posté 13 Septembre 2007 Je suis un peu désœuvré ce soir, je viens de te faire un petit script. <?php$file = 'tableau.txt';$page = 'http://www.ff-handball.org/ffhb/html/les-championnats/lesresultats.php?structure=1642000&saison=2007%20-%202008&competition=Championnat%20D%E9partemental%20Masculin&phase=Excellence%20departemental%20masculin&groupe=Poule%20unique';$temps = 7; // Temps en jours avant de modifier le fichier en cache$regex = "|<table BORDER='0' CELLSPACING='0' CELLPADDING='2' WIDTH='100 %'>(.*?)</table>|s";if(!file_exists($file) || filemtime($file) <= strtotime("-$temps days")) { // S'il n'existe pas, on crée le fichier $data = file_get_contents($page); preg_match($regex, $data, $matches); $flux = fopen($file, 'w+'); fwrite($flux, $matches[0]); fclose($flux);}$tableau = file_get_contents($file);echo $tableau;?> Il te suffit de l'enregistrer avec l'extension .php, puis de l'appeler dans une de tes pages par la commande <?php include('tableau.php'); ?> Pour éviter de faire un appel à chaque fois sur la page distante, le résultat est enregistré dans un fichier texte. Par défaut, le fichier texte est mis à jour toutes les semaines, mais tu peux modifier la variable $temps pour que ce soit plus ou moins fréquent. Il faut aussi prendre en compte qu'un changement de la page ciblée, invalidera automatiquement le code.
marcb Posté 14 Septembre 2007 Posté 14 Septembre 2007 Hop, Captain : et moi qui croyais que le forum n'était pas un endroit pour se décharger de son boulot sur les autres... Je serai alexsp, je t'enverrai une boite de chocolats ! M
Dan Posté 14 Septembre 2007 Posté 14 Septembre 2007 Je suis un peu désuvré ce soir, je viens de te faire un petit script. Un jeune marié désoeuvré ? Ben mon vieux, ça commence mal !
captain_torche Posté 14 Septembre 2007 Posté 14 Septembre 2007 Sandrine n'était pas encore rentrée, j'avais un peu de temps devant moi
alexsp112 Posté 14 Septembre 2007 Auteur Posté 14 Septembre 2007 (modifié) je suis pas Crézus moi ! Plus sérieusement merci (avec un grand M) à toi captain_torche et tous en général. J'ai découvert plein de truc (pas toujours concluant mais je tenterais quand même de faire fonctionner tout ça...) J'abuse de vous encore un chouilla... Comme j'ai plusieurs équipes j'ai plusieurs tableaux différent à insérer. Dans ton code captain_torche il faut que je modifie le nom du fichier .txt, l'URL de la page et c'est tout ou j'ai oublier un truc ? Modifié 14 Septembre 2007 par alexsp112
captain_torche Posté 14 Septembre 2007 Posté 14 Septembre 2007 Ca devrait être tout. Mais bon, tu aurais pu tester par toi-même
alexsp112 Posté 14 Septembre 2007 Auteur Posté 14 Septembre 2007 J'ai voulu tester avec WAMP en local mais la page s'est jamais chargée et j'ai pensé que c'est parce que j'avais oublier de modifier quelque chose... ...
ted Posté 29 Octobre 2007 Posté 29 Octobre 2007 Salut Captain Torche, Ma question est légèrement différente. J'aimerais inclure uniquement une partie de page (titres par ex.) dans une balise spécifique. En fait, un résumé de news ou d'agenda. Merci d'avance pour ton aide.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant