Récupérer le code source d'une page - PHP - Programmation
Marsh Posté le 01-07-2003 à 09:25:27
HTML(le source des pages web est du HTML) est un sous-langage de XML (bon, un langage car XML est un méta-langage) alors pense aux parseurs XML (SAX, DOM est surement trop pour ce que tu as besoin) pour acceder à tes fichiers HTML ...
Marsh Posté le 01-07-2003 à 09:27:56
western a écrit : HTML(le source des pages web est du HTML) est un sous-langage de XML (bon, un langage car XML est un méta-langage) alors pense aux parseurs XML (SAX, DOM est surement trop pour ce que tu as besoin) pour acceder à tes fichiers HTML ... |
Euh ouais, perso j'ai pas tout compris mais ce ke je comprends pas c'est k'en asp, il suffit de lire ce ki arrive dans une socket et de le mettre dans une string pour pouvoir traiter le code html. Ce la doit donc etre possible en PHP. Et il me semblait que ce code la marchait, vu que c'est celui fourni sur la doc php. Or ca foire et si kk1 l'a deja fait, il pourrait m'éclairer de sa lanterne.
Marsh Posté le 01-07-2003 à 10:55:10
claque2000 a écrit : Bonjour,
|
Je ne comprends pas bien ton problème.
Il suffit de faire un fopen et fread ensuite pour lire ton fichier HTML comme n'importe quel fichier non ?
Marsh Posté le 01-07-2003 à 10:58:29
western a écrit : HTML(le source des pages web est du HTML) est un sous-langage de XML (bon, un langage car XML est un méta-langage) alors pense aux parseurs XML (SAX, DOM est surement trop pour ce que tu as besoin) pour acceder à tes fichiers HTML ... |
non,
|
pas facile à faire en ASCII HTML vient du SGML (SGML est le contenant, HTML le contenu). XML est une spécialisation de SGML, toujours un contenant. XHTML c'est du HTML dans un document XML.
un document HTML n'est que très rarement un document XML valide (faut vraiment du bol pour que ça le soit)
Marsh Posté le 01-07-2003 à 11:05:16
Hermes le Messager a écrit : |
Bah justement, je sais pas si c'est si simple que ca. C'est pour cela que je demande conseil. Et surtout, ce ke j'aimerai savoir, c'est pourkoi mon code ne marche pas alors que c'est via la doc de php.net que je l'ai obtenu.
Marsh Posté le 01-07-2003 à 11:30:20
Bon problème résolu à l'aide de fopen et fgets.
Ca m'explike pas pk mon code précédent foirait mais bon.
Marsh Posté le 01-07-2003 à 12:02:02
antp a écrit :
|
Juste un problème avec certains balises (br, etc.) Il suffit d'avoir un parseur laxiste
EDIT:
ou faire du XHTML car utilisation d'un parseur XML simplifié la vie et facilite l'extraction des informations ...
Marsh Posté le 01-07-2003 à 12:04:44
avec n'importe quelle balise
<table>
<tr>
<td>A
<tr>
<td>B
c'est valide
Marsh Posté le 01-07-2003 à 12:06:27
antp a écrit : avec n'importe quelle balise |
J'aimera voir la rendu d'une page HTML ne contenant que les balises ouvrantes!
Marsh Posté le 01-07-2003 à 12:07:38
claque2000 a écrit : Bon problème résolu à l'aide de fopen et fgets. |
Passke comme le dit Hermès, une fois le HTML ouvert avec le premier fopen, il faut lire le fichier avec un fread (ou un fgets). Ca se lit pas tout seul. Comme en C, fopen te retourne un pointeur (ou en PHP un "file descriptor" ) sur le fichier ouvert et pas une chaîne de caractères.
Marsh Posté le 01-07-2003 à 12:08:18
western a écrit : |
Ba de toute façon, un simple <br> suffit à faire planter ton parseur XML
Marsh Posté le 01-07-2003 à 12:12:08
Taiche a écrit : |
C'est bien ce que j'ai dit, non? à moins que tu ne lit qu'une ligne sur deux ...
Taiche a écrit : |
Oui mais à un moment, le parseur DOM du php plantait pas
D'autre part, utiliser un parseur SAX ...
Marsh Posté le 01-07-2003 à 12:14:02
western a écrit : |
il faut quand même un </table>
www.antp.be/temp/html4open.html
|
Cette page est tout à fait valide :
http://validator.w3.org/check?uri= [...] 4open.html
Marsh Posté le 01-07-2003 à 13:07:31
Pas bien de piquer les news des autres
$temp = file('http://www.clubic.com/n/n9238.html');
Marsh Posté le 01-07-2003 à 14:02:49
Taiche a écrit : |
Oui mais la fonction file est censée retourner dans un tableau le contenu du fichier. Ou alors g pas compris le but de la fonction file, ni l'exemple fourni.
Marsh Posté le 01-07-2003 à 14:08:16
antp a écrit :
|
En fait, XML est clairement derivé du SGML.
HTML par contre, est vaguement inspiré du SGML, mais du HTML n'est pas du SGML a la base, juste du texte taggé, avec un taggage respectant la syntaxe usuelle du SGML.
D'autre part, SGML et XML sont des meta langages. Pas HTML et XHTML.
A+,
Marsh Posté le 01-07-2003 à 14:21:59
en gros c'est ce que je disais, non ?
Marsh Posté le 01-07-2003 à 14:30:04
claque2000 a écrit : |
Ah ui. Intéressant, j'avais pas vu
Marsh Posté le 01-07-2003 à 14:32:34
Taiche a écrit : |
spo grave mais ct qd mm ca la question de depart : est ce ke c file ou implode qui chie ?
Ou est ce mon script qu'est tout pourri bien que repompe integralement sur php.net ?
Marsh Posté le 01-07-2003 à 14:40:19
claque2000 a écrit : |
Ba pour le savoir, j'te conseille de tester direct un echo de la première ligne juste après le file(). Je pencherais effectivement pour un plantage dans implode(). Tu veux faire quoi avec, au juste ?
Marsh Posté le 01-07-2003 à 14:45:28
Taiche a écrit : |
Euh ...
Etant inscrit sur hebus.com, j'ai le droit de downloader toutes les images, et c'est ce ke je compte faire, l'ayant deja fait. Bon la premiere fois, j'avais telecharge les galleries au format zip. C devenu payant de prendre les zip. Le site fonctionnant par cookies, il me suffit de me connecter une fois, histoire que le cookie soit present et apres je v parcourir les pages que me renvoie hebus, en cherchant les liens vers le cat, gallerie puis chaque image et enregister l'image correspondante. Tout comme si je le fesais à la main. C juste automatiser un travail long à la main. C fesable aussi en java et je sais le faire mais jveux le faire en PHP
Marsh Posté le 01-07-2003 à 19:19:17
antp a écrit : en gros c'est ce que je disais, non ? |
Pas tout a fait, car tu disais ceci: HTML vient du SGML (SGML est le contenant, HTML le contenu).
qui n'est pas tout a fait exact.
Aux debuts de HTML, y'avait pas vraiment de DTD.
A+,
Marsh Posté le 01-07-2003 à 19:51:05
ReplyMarsh Posté le 01-07-2003 à 23:32:06
claque2000 a écrit : Bon problème résolu à l'aide de fopen et fgets. |
Faut imploder sur rien :
Code :
|
Marsh Posté le 02-07-2003 à 11:09:20
THEniluje a écrit : Faut imploder sur rien :
|
Yess, merci. En fait le implode sur rien, je l'avais fait dès le début. Mais j'ai testé le code sur mon compte lycos, et ca foirait.
Jviens de reessayer sur le serveur apache installe par mes soins au taf et ca tourne nickel. Conclusion : lycos c gratuit, y'a 50 megs mais ca marche pas top.
Marsh Posté le 01-07-2003 à 09:05:23
Bonjour,
le but de mon script PHP est de récupérer le source d'une page html afin de la parcourir et d'en extraire certaines informations. C'est la partie récupération de la page qui ne marche pas. Or, la fonction file doit retourner un tableau contenant l'ensemble des mots du fichier, ici la source.
Cependant, si j'essaye d'afficher une case du tableau, je n'ai rien et dans le script que j'ai écrit ci-dessous, le fichier créé fait 0 octets. Est ce que kk1 pourrait me conseiller ?
Merci.
---------------
Linux registered user #352556