Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1365 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Récupérer le code source d'une page

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupérer le code source d'une page

n°444846
claque2000
GamerTag : claquos2000
Posté le 01-07-2003 à 09:05:23  profilanswer
 

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.
 

Code :
  1. <?
  2. // On ouvre le fichier
  3. $temp = file('http://www.clubic.com/n/n9238.html');
  4. $temp = implode(' ', $temp);
  5. // On créer le fichier sur le serveur
  6. $fp = fopen("copie_test.php","w" );
  7. // On enregistre les données
  8. fputs($fp, "$temp" );
  9. // On ferme le fichier)
  10. fclose($fp);
  11. ?>


---------------
Linux registered user #352556
mood
Publicité
Posté le 01-07-2003 à 09:05:23  profilanswer
 

n°444853
western
AJMM
Posté le 01-07-2003 à 09:25:27  profilanswer
 

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 ...

n°444855
claque2000
GamerTag : claquos2000
Posté le 01-07-2003 à 09:27:56  profilanswer
 

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.


---------------
Linux registered user #352556
n°444938
Hermes le ​Messager
Breton Quiétiste
Posté le 01-07-2003 à 10:55:10  profilanswer
 

claque2000 a écrit :

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.
 

Code :
  1. <?
  2. // On ouvre le fichier
  3. $temp = file('http://www.clubic.com/n/n9238.html');
  4. $temp = implode(' ', $temp);
  5. // On créer le fichier sur le serveur
  6. $fp = fopen("copie_test.php","w" );
  7. // On enregistre les données
  8. fputs($fp, "$temp" );
  9. // On ferme le fichier)
  10. fclose($fp);
  11. ?>

 


 
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 ?
 :??:

n°444941
antp
Super Administrateur
Champion des excuses bidons
Posté le 01-07-2003 à 10:58:29  profilanswer
 

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,  
 


SGML
 \---------> HTML -\
  \--> XML ---------\--> XHTML


pas facile à faire en ASCII :D 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)


Message édité par antp le 01-07-2003 à 11:00:12

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°444956
claque2000
GamerTag : claquos2000
Posté le 01-07-2003 à 11:05:16  profilanswer
 

Hermes le Messager a écrit :


 
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 ?
 :??:  


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.


---------------
Linux registered user #352556
n°445006
claque2000
GamerTag : claquos2000
Posté le 01-07-2003 à 11:30:20  profilanswer
 

Bon problème résolu à l'aide de fopen et fgets.
Ca m'explike pas pk mon code précédent foirait mais bon.


---------------
Linux registered user #352556
n°445036
western
AJMM
Posté le 01-07-2003 à 12:02:02  profilanswer
 

antp a écrit :


 


SGML
 |---------> HTML
 |
 |---------> XML
              |-----> XHTML


pas facile à faire en ASCII :D 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)


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 ...


Message édité par western le 01-07-2003 à 12:03:23
n°445037
antp
Super Administrateur
Champion des excuses bidons
Posté le 01-07-2003 à 12:04:44  profilanswer
 

avec n'importe quelle balise
 
<table>
<tr>
<td>A
<tr>
<td>B
 
c'est valide [:spamafote]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°445039
western
AJMM
Posté le 01-07-2003 à 12:06:27  profilanswer
 

antp a écrit :

avec n'importe quelle balise
 
<table>
<tr>
<td>A
<tr>
<td>B
 
c'est valide [:spamafote]


J'aimera voir la rendu d'une page HTML ne contenant que les balises ouvrantes!

mood
Publicité
Posté le 01-07-2003 à 12:06:27  profilanswer
 

n°445040
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 01-07-2003 à 12:07:38  profilanswer
 

claque2000 a écrit :

Bon problème résolu à l'aide de fopen et fgets.
Ca m'explike pas pk mon code précédent foirait mais bon.


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.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°445043
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 01-07-2003 à 12:08:18  profilanswer
 

western a écrit :


J'aimera voir la rendu d'une page HTML ne contenant que les balises ouvrantes!


Ba de toute façon, un simple <br> suffit à faire planter ton parseur XML [:spamafote]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°445047
western
AJMM
Posté le 01-07-2003 à 12:12:08  profilanswer
 

Taiche a écrit :


Ba de toute façon, un simple <br>  


C'est bien ce que j'ai dit, non? à moins que tu ne lit qu'une ligne sur deux ...

Taiche a écrit :


suffit à faire planter ton parseur XML [:spamafote]


Oui mais à un moment, le parseur DOM du php plantait pas
D'autre part, utiliser un parseur SAX ...

n°445049
antp
Super Administrateur
Champion des excuses bidons
Posté le 01-07-2003 à 12:14:02  profilanswer
 

western a écrit :


J'aimera voir la rendu d'une page HTML ne contenant que les balises ouvrantes!


 
il faut quand même un </table> :o
 
www.antp.be/temp/html4open.html
 


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      <title>Page de test</title>
   </head>
   <body>
    <table>
    <tr>
    <td>A
    <tr>
    <td>B
    </table>
    <p>Coucou !


 
Cette page est tout à fait valide :
http://validator.w3.org/check?uri= [...] 4open.html


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°445082
jagstang
Pa Capona ಠ_ಠ
Posté le 01-07-2003 à 13:07:31  profilanswer
 


Pas bien de piquer les news des autres  
 
$temp = file('http://www.clubic.com/n/n9238.html');  

n°445151
claque2000
GamerTag : claquos2000
Posté le 01-07-2003 à 14:02:49  profilanswer
 

Taiche a écrit :


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.


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.


---------------
Linux registered user #352556
n°445155
gilou
Modérateur
Modzilla
Posté le 01-07-2003 à 14:08:16  profilanswer
 

antp a écrit :


 
non,  
 


SGML
 \---------> HTML -\
  \--> XML ---------\--> XHTML


pas facile à faire en ASCII :D 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)


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+,
 


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°445170
antp
Super Administrateur
Champion des excuses bidons
Posté le 01-07-2003 à 14:21:59  profilanswer
 

en gros c'est ce que je disais, non ? :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°445182
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 01-07-2003 à 14:30:04  profilanswer
 

claque2000 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.


Ah ui. Intéressant, j'avais pas vu [:ddr555]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°445187
claque2000
GamerTag : claquos2000
Posté le 01-07-2003 à 14:32:34  profilanswer
 

Taiche a écrit :


Ah ui. Intéressant, j'avais pas vu [:ddr555]  


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 ?


---------------
Linux registered user #352556
n°445201
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 01-07-2003 à 14:40:19  profilanswer
 

claque2000 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 ?


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 ?


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°445208
claque2000
GamerTag : claquos2000
Posté le 01-07-2003 à 14:45:28  profilanswer
 

Taiche 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 ?


Euh ...  :D  
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  :na:


---------------
Linux registered user #352556
n°445518
gilou
Modérateur
Modzilla
Posté le 01-07-2003 à 19:19:17  profilanswer
 

antp a écrit :

en gros c'est ce que je disais, non ? :D


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+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°445551
antp
Super Administrateur
Champion des excuses bidons
Posté le 01-07-2003 à 19:51:05  profilanswer
 
n°445762
FlorentP
Posté le 01-07-2003 à 23:32:06  profilanswer
 

claque2000 a écrit :

Bon problème résolu à l'aide de fopen et fgets.
Ca m'explike pas pk mon code précédent foirait mais bon.

Faut imploder sur rien :

Code :
  1. $source_html = implode("", file("tapage" ));

n°446077
claque2000
GamerTag : claquos2000
Posté le 02-07-2003 à 11:09:20  profilanswer
 

THEniluje a écrit :

Faut imploder sur rien :

Code :
  1. $source_html = implode("", file("tapage" ));




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.


Message édité par claque2000 le 02-07-2003 à 11:09:42

---------------
Linux registered user #352556
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Récupérer le code source d'une page

 

Sujets relatifs
[TAPI] Récupérer le numéro de tel de l'appelantrécupérer les données d'une autre page
[JSP][JAVA] Connaitre la taille de la page HTMLCherche cours d'optimisation de code PHP !
[ WML ] Erreur dans le code ?venez tester ma page + conseils
[Js] Recuper une valeur d'un pop up dans la page principale [resolu][résolu] Faire une redirection automatique sur la page précédente
probleme de mise en page 
Plus de sujets relatifs à : Récupérer le code source d'une page


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR