Se connecter / S'enregistrer

Résolu Récupération Donnée Html par PHP

Solutions (22)
Tags :
  • Serveur
  • Programmation
|
Bonjour à tous,

Je suis à la recherche de solution, voici mon soucis :

Je souhaite récupérer une partie d'une page html d'un site distant pour l'afficher dans une div de mon site.

Plus concrètement, je suis en train de faire un site pour ma team, et voudrais récupérer le tableau des mort PVP pour l'afficher directement sur mon site et ainsi ne plus avori à aller sur le site du serveur pour afficher le PVP récent.

En gros je voudrais le tableau de cette page : http://t4c.abominationt4c.com/index.php?p=PVP&lng=fr

J'ai trouvé plusieurs infos pour ce qui est des iframes, mais je n'arrive pas à récupérer seulement la liste des morts, avec iframe, tout le site est raffiché dans ma div.

J'ai lu que je peux récupérer le contenu de la page en php pour ensuite le modifier et conserver que ce que je souhaite, mais après avoir tourné les codes php dans tout les sens, je n'y arrive pas.
Contenus similaires
Meilleure solution
partage
|
Ah ben oui, j'ai légèrement merdé ma simplification:
  1. $page = substr($page, strpos($page, '<center>'), (strpos($page, '</center>') - strpos($page, '<center>')));
  • Commenter cette solution |
Score
0
òh
òi
|
Une fois que tu as récupéré la partie principale du code, il te suffit de prendre de:
strpos($page, '<h2>') à strrpos($page, '</table>')
  • Commenter cette réponse |
Score
0
òh
òi
|
Désolé de relancer le poste, mais après plusieurs jours de recherche je n'ai pas avancé, je n'arrive même pas à supprimer l'image de la fin...

Ne voulant pas en réouvrir un autre, je poste ici ce que je souhaiterais, peut être que quelqu'un qui s'y connais pourra faire sa facilement...

Donc : Voici la page Php en question: http://gumpsforever.ahst.fr/AboPVP.php

Je voudrais seulement afficher la partie qui démarre à partir de : "Les morts les plus récentes" jusqu'à le dernier mort en question...

Ce tableau proviens du site : http://t4c.abominationt4c.com/index.php?p=PVP&lng=fr

Le but est d'afficher les morts sur ma page...

Actuellement j'arrive à ce qui est actuellement affiché... Le But est de juste afficher le tableau dans ma Div : Corps ( grise)...

Merci d'avance pour votre aide, j'aimerais pouvoir clôturer ce truck...
  • Commenter cette réponse |
Score
0
òh
òi
|
Ok, Merci de tes conseils avisés.

Bye
  • Commenter cette réponse |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par Alex45100.
  • Commenter cette réponse |
Score
0
òh
òi
|
Tu choisis une meilleure réponse.

Mais si je puis me permettre, commence par récupérer la partie entre <center> et </center> et travaille sur celle là.
Il vaut mieux ajouter des étapes que risquer de ne pas avoir la bonne balise.
  • Commenter cette réponse |
Score
0
òh
òi
|
Ok, Merci bien...

Je continu de chercher, considère le poste résolu, mais si tu veux continuer de m'aider, j'ai ce code la pour le moment qui ne me retourne rien :

<?php
$page = file_get_contents('http://t4c.abominationt4c.com/index.php?p=PVP&lng=fr');
$page = substr($page, strpos($page, '<td class="maintab" align="left" colspan="9" style="padding: 10px;"'), (strpos($page, '<td class="maintab" align="left" colspan="9" style="padding: 10px;"') - strpos($page, '<br>\n</td>')));
echo $page;
?>


Merci en tout cas...

Comment je cloture mon poste?
  • Commenter cette réponse |
Score
0
òh
òi
|
Je t'ai donné le début (à savoir extraire la table qui t'intéresse).
Ensuite, comme je te disais, avec des strrpos() tu peux aller chercher les dernières occurences de </td> dans cette table, avec strpos() les premières.

Maintenant, c'est du simple traitement de chaine et de la logique, il n'y a qu'à faire.

Tu as compris le principe du substr(), tu sais trouver un point de départ et une arrivée, tout est ok.
  • Commenter cette réponse |
Score
0
òh
òi
|
La modificaque tu à aporté ne change rien...

Si je ocmprends bien, le : (strpos($page, '</center>') - strpos($page, '<center>'))
Signifierais la longueur souhaitée en gros je veux juste le contenu de la balise <center>

Serait il possible de selecitonner directement le contenu de la balise : <td classe="maintab"...> ?

Le problème que je rencontre c'est que cette balise comporte elle même des balise td...

Une idée? :) 

Je continu mes recherches à coté de ça.

Merci pour tes suggestions
  • Commenter cette réponse |
Score
0
òh
òi
|
...


(my 2 cents)
  • Commenter cette réponse |
Score
0
òh
òi
|
crazycat@idn a dit :
Ah ben oui, j'ai légèrement merdé ma simplification


tsss ... noob !
































:D 
  • Commenter cette réponse |
Score
0
òh
òi
|
Héhé j'avais bien compris, mais le problème avec substr() c'est que tu ne définie pas la position finale, mais une distance (lengh)...
Ce qui me pause problème car je ne veux pas avoir le bas de page, je souhaite juste le tableau...


Mais bon j'irais à taton, mais si t ua une idée :)  sa m'avancerais !


En tout cas, merci de ton aide.
  • Commenter cette réponse |
Score
0
òh
òi
|
Une fois que tu as $page (avec le code que je t'ai donné), tu peux retravailler son contenu à coup de substr() pour avoir juste ce qui t'intéresse.
Par contre, il faut effectivement y aller à tâtons pour trouver les bonnes balises à chercher et retirer.
Petit indice: strpos() et strrpos() seront tes amis.
  • Commenter cette réponse |
Score
0
òh
òi
|
Salut,

Merci, j'ai modifié et effectivement, ça marche, j'aurais du le voir seul... Enfin...

Mais j'ai encore un problème, le tableau s'affiche, mais décalé, sur la droite, et en plus il me reste l'image du bas qui est prise en compte...

J'ai essayé de modifier moi même ton code pour avoir ce que je veux :
$page = substr($page, strpos($page, '<td class="maintab" align="left" colspan="9" style="padding: 10 px;">'), strpos($page, '</td>'));

Mais la il ne s'affiche que les 2 grosses images...

Je vais continuer mes recherches...

Idéalement, il me faudrais fraiment que le contenu du tablea, pas le "sous-menu" avec Cimetière, tournoi, domination karmique...

Je continu mes recherches en parallèle...

Merci d'avance

*EDIT*: J'ai essayé d'agrandir ma Div Corps au cas ou il m'afficherait à droite pour cause d'un espace insuffisant, mais non, avec un Corps de 2000 par 1000 pixel, il me l'affiche mal quand même...
  • Commenter cette réponse |
Score
0
òh
òi
|
J'ai une idée :) 
J'ai oublié de fermer une parenthèse dans le code que je t'ai donné:
  1. $page = substr($page, strpos($page, '<center>'), strpos($page, '</center>'));
  • Commenter cette réponse |
Score
0
òh
òi
|
Comme tu me l'a suggéré, j'ai renommé ma page AboPVP en .php, mais rien n'y fais j'ai une nouvelle erreur :

Parse error: syntax error, unexpected ';' in /var/www/hosting/gumpsforever/public/AboPVP.php on line 26

Pour y acceder j'ai mis a jour mon raccourci de ma page Index.html dans le menu (J'ai un menu par page...) Donc pour acceder au AboPVP.php il faut aller sur acceuil et cliquer sur PVP, j'ai pas mis a jour toutes mes pages.

Faut'il que je renomme tout mes page html en php? Je ne ocmprends pas pourquoi ça ne marche pas...

As t u une autre idée?

Merci d'avance
  • Commenter cette réponse |
Score
0
òh
òi
|
Que vois-je dans une page avec une extension html ?
  1. <?php
  2. $page = file_get_contents('http://t4c.abominationt4c.com/index.php?p=PVP&lng=fr');
  3. $page = substr($page, strpos($page, '<center>'), strpos($page, '</center>');
  4. echo $page;
  5. ?>

Essaye de renommer ta page en AboPVP.php, ça ira surement mieux
  • Commenter cette réponse |
Score
0
òh
òi
|
Salut,

J'ai hébergé mon site, mais j'ai toujours une erreur dans la page :

( ! ) Parse error: syntax error, unexpected ';' in /var/www/hosting/gumpsforever/public/teste.php on line 10

Comment j'ai fait tout ça : J'ai fait un fichier teste.php la ou j'ai mi ton code, puis sur la page PVP, j'ai fait une iframe avec comme source la page .php

Voici le lien du site hébergé : http://gumpsforever.ahst.fr/AboPVP.html

*EDIT* : J'ai aussi ajouté le code directement dans ma Div sur la page AboPVP, mais j'ai l'erreur suivante :
'), strpos($page, ''); echo $page; ?>

Merci d'avance pour ton aide.
  • Commenter cette réponse |
Score
0
òh
òi
|
Merci des tes conseils, je vais les suivres...
  • Commenter cette réponse |
Score
0
òh
òi
|
Evidemment, il faut un serveur pour faire du PHP.
Mais si tu fais un site, il ne va pas être en pur html, j'imagine qu'il sera en PHP. Alors oui, installe WAMP (par exemple) et développe dans les conditions s'approchant du réel.

Ou mieux, prends déjà un hébergement, même gratuit tant que c'est pour développer, et travaille comme il faut, tu t'éviteras bien des soucis.
  • Commenter cette réponse |
Score
0
òh
òi
|
Merci pour ce bout de code, il me parait fonctionnel, pourtant, je n'arrive pas à l'utiliser.

Je l'ais inséré dans ma page (html) mais ça ne fonctionne pas j'ai dans la div sensé contenir ce que je veux :

'), strpos($page, ''); echo $page; ?>

J'ai aussi essayé de faire un .php externe mais rien n'y fait...

Y aurait il un problème de droit? Bien que le contenu soit lisible, il provient d'une base de donnée...

Pourrais tu si tu y arrive, me faire un code .php qui ma récupère les données, et le code HTML pour les interpréter, avec cela je pourrais me débrouiller pour l'intégrer à ma page et lui affecter le style que je souhaite.

En gros une page .html qui m'affiche le contenu que je veux, avec le .php qui convient bien, je saurais ensuite intégrer ta parti dans ma div (Corps) de ma page html


Merci d'avance.

Edit : Je crois aussi qu'il n'est pas possible d'avoir un rendu avec le php si on n'a pas de serveur, comment faire alors pour faire mes essaies?

Je possède un autre ordinateur, que me conseille tu d'installer pour faire l'hebergeur ? WAMP?

Encore Merci
  • Commenter cette réponse |
Score
0
òh
òi
|
Le plus simple est de récupérer ta page sous forme texte avec un file_get_contents() et de prendre (et afficher) la partie qui t'intéresse:
  1. <?php
  2. $page = file_get_contents('http://t4c.abominationt4c.com/index.php?p=PVP&lng=fr');
  3. $page = substr($page, strpos($page, '<center>'), strpos($page, '</center>');
  4. echo $page;
  5. ?>

  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS