A voir également:
- Récupère les données d'une page web en PHP
- Récupère les données d'une page web en PHP ✓ - Forum - PHP
- Javascript récupérer les données d'une page web ✓ - Forum - Javascript
- Java -> Récupérer les données d'une page web ✓ - Forum - Java
- Récupérer des données sur une page web ✓ - Forum - HTML
- Récupérer le code source d'un site web ✓ - Forum - Javascript
3 réponses
Bilow
Salut !
Je viens d'essayer le code, il semble qu'il y ait une erreur.
Ca vient du preg_match(), mais je ne sais pas pourquoi.
Donc, si tu es sûr qu'il y a un tableau dans la page recherchée (sinon ca fait rien), essaye ce code (version finale, j'espère);
Cela fonctionne-t-il ?
;)
Je viens d'essayer le code, il semble qu'il y ait une erreur.
Ca vient du preg_match(), mais je ne sais pas pourquoi.
Donc, si tu es sûr qu'il y a un tableau dans la page recherchée (sinon ca fait rien), essaye ce code (version finale, j'espère);
$page = file_get_contents("https://www.domainecarneros.com/"); $tableau = preg_replace("#(.*)<table(.*)>(.+)</table>(.*)#", "<table $2>$3</table>", $page); echo $tableau; } Ton tableausera affiché, et inutile d'y rajouter <table> et </table>.
Cela fonctionne-t-il ?
;)
Signaler
tito23
- Messages postés
- 305
- Date d'inscription
- mardi 10 août 2010
- Statut
- Membre
- Dernière intervention
- 16 janvier 2013
le $2 et le $3 ça correspond à quoi?
Bilow
Salut !
Pour récupérer le contenu d'une page web en PHP, voici cette fonction :
file_get_contents($page);
Note que cette fonction, lorsqu'elle appelle une page sur le même serveur, renvoi la source en PHP même, au lieu de celle éxécutée en HTML.
Sauf exception, cette fonction renverra quelque chose chose du type :
<html><head><title>
etc.
Après, si tu cherches un tableau, tu le récupères avec des expressions régulières :D
Voila ;)
Pour récupérer le contenu d'une page web en PHP, voici cette fonction :
file_get_contents($page);
Note que cette fonction, lorsqu'elle appelle une page sur le même serveur, renvoi la source en PHP même, au lieu de celle éxécutée en HTML.
Sauf exception, cette fonction renverra quelque chose chose du type :
<html><head><title>
etc.
Après, si tu cherches un tableau, tu le récupères avec des expressions régulières :D
$page = file_get_contents("https://www.domainecarneros.com/"); if(preg_match("#(.*)<table(.*)>(.+)</table>(.*)#", $page)){ $tableau = preg_replace("#(.*)<table(.*)>(.+)</table>(.*)#", "$3", $page); // $tableau vaut maintenant "<tr><td>Cellule 1</td><td>Etc.</td></tr>" + Etc; // Et après, si tu veux continuer à tirer les informations, tu continues avec les expresisons régulières... }
Voila ;)
Bilow
Oui, ou à peu près...
Lors du tri par regex, le contour <table ...> est supprimé.
Donc, soit, tu fais :
Ou soit, tu modifie la regex tel qu'on garde les paramètres HTML.
Pour ce, la ligne de l'appel de preg_replace ( PAS preg_match() ), remplace-la par :
Et, normalement, tu auras ton tableau entier, avec les paramtres de <table>.
Bye ;)
Lors du tri par regex, le contour <table ...> est supprimé.
Donc, soit, tu fais :
<table> <?php echo $tableau; ?> </table>
Ou soit, tu modifie la regex tel qu'on garde les paramètres HTML.
Pour ce, la ligne de l'appel de preg_replace ( PAS preg_match() ), remplace-la par :
$tableau = preg_replace("#(.*)<table(.*)>(.+)</table>(.*)#", "<table $2>$3</table>", $page);
Et, normalement, tu auras ton tableau entier, avec les paramtres de <table>.
Bye ;)