Récupérer les données dans une autre page [Résolu]

Récupérer les données dans une autre page [Résolu] - PHP - Programmation

Marsh Posté le 29-08-2006 à 16:36:12    

Bonjour à tous !
 
J'ai besoin de récupérer tout le contenu d'un div placer dans une autre page c'est-à-dire que je ne veux pas seulement le texte qu'il y a dans ce div.
 
Je pourrait lire le fichier ligne par ligne jusqu'à ce que je trouve ce que je veux mais n'y a-t-il pas un moyen plus rapide ou plus simple ?
 
PS : Je sais que c'est une question con mais ne me prenez pas pour un débutant :) .
 
Merci à tous.


Message édité par CNeo le 30-08-2006 à 10:30:15
Reply

Marsh Posté le 29-08-2006 à 16:36:12   

Reply

Marsh Posté le 29-08-2006 à 17:14:31    

euh, en vrai, c'est quoi l'objectif, là?[:autobot]
 
Non parce-que je comprends pas vraiment ni l'intérêt, ni la difficulté, en fait...[:jean-guitou]
 
(...et sinon, attifs ça existe pas, en français...[:dawa])


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 29-08-2006 à 17:17:25    

Je pense que le monsieur osuhaite utiliser cette solution pour recuperer une information qu il ne gere pas, type temperature du coin, fichier en cours de lecture sur europe 2 que sais je encore.
Suis je bon sur ce coup la CNeo ?  

Reply

Marsh Posté le 29-08-2006 à 17:38:28    

skeye a écrit :

euh, en vrai, c'est quoi l'objectif, là?[:autobot]
 
Non parce-que je comprends pas vraiment ni l'intérêt, ni la difficulté, en fait...[:jean-guitou]
 
(...et sinon, attifs ça existe pas, en français...[:dawa])


 
En fait je voulais juste savoir ce que vous pensez être le mieux pour récupérer le contenu d'un div sur une autre page en sachant que je ne veux pas seulement le texte comme avec DOM (si on peut aussi récupérer les balises avec DOM je suis preneur).
 
Suis-je plus clair ?

Reply

Marsh Posté le 29-08-2006 à 17:41:40    

si on peut aussi récupérer les balises avec DOM je suis preneur
 
donc t as meme pas essayé avant de poser ta question ? [:petrus dei]

Reply

Marsh Posté le 29-08-2006 à 17:47:02    

mIRROR a écrit :

si on peut aussi récupérer les balises avec DOM je suis preneur
 
donc t as meme pas essayé avant de poser ta question ? [:petrus dei]


 
Essayer quoi ???
 
J'ai déjà récupérer le texte contenu dans un div ayant un id avec DOM seulement cela renvoit uniquement le texte or là j'ai besoin de tout le contenu soit TEXTE + BALISES ENFANTS. :o  
 
PS : ARRETEZ DE ME PRENDRE POUR UN DEBUTANT ! :fou:

Message cité 1 fois
Message édité par CNeo le 29-08-2006 à 17:47:27
Reply

Marsh Posté le 29-08-2006 à 17:58:21    

mIRROR a écrit :

si on peut aussi récupérer les balises avec DOM je suis preneur
 
donc t as meme pas essayé avant de poser ta question ? [:petrus dei]


 
Saches que je fais une recherche est que je réfléchi avant de créer un nouveau sujet. :o

Reply

Marsh Posté le 29-08-2006 à 18:38:37    

Enfin moi j'ai toujours mon probleme alors si ca vous tente vous qui n'etaes pas debutant ;)
http://forum.hardware.fr/hardwaref [...] 5621-1.htm

Reply

Marsh Posté le 29-08-2006 à 18:51:07    

Pour en revenir au sujet voilà ce que j'ai fait :
 


$found=0;
$openedFile = fopen("monfichier","r" );
while ( ! feof($openedFile) ){
 $line = fgets($openedFile, 1024);
 if($found>=1){
  if(strstr($line, '<div')){
   $found++;
  }
  if(strstr($line, '</div>')){
   $found--;
  }
  if($found>=1){
   print "$line\n";
  }
 }
 elseif(strstr($line, '<div id="corps"')){
  $found=1;
 }
}


Comme vous pouvez le voir ceci sert à lire tout ce qu'il y a entre l'ouverture du div ayant pour id corps et la fermeture de ce même div.
 
Ma question est donc connaissez-vous qqch de plus simple, de plus rapide, de plus "éthique" ... bref de mieux ?

Message cité 1 fois
Message édité par CNeo le 29-08-2006 à 19:02:14
Reply

Marsh Posté le 29-08-2006 à 18:52:41    

DavidCmoi92 a écrit :

Enfin moi j'ai toujours mon probleme alors si ca vous tente vous qui n'etaes pas debutant ;)
http://forum.hardware.fr/hardwaref [...] 5621-1.htm


 
Désolé mais je n'ai pas encore plongé le nez dans les sessions même si je sais ce que c'est.

Reply

Marsh Posté le 29-08-2006 à 18:52:41   

Reply

Marsh Posté le 29-08-2006 à 19:12:22    

CNeo a écrit :

PS : ARRETEZ DE ME PRENDRE POUR UN DEBUTANT ! :fou:


 

CNeo a écrit :

Désolé mais je n'ai pas encore plongé le nez dans les sessions même si je sais ce que c'est.


 
[:doc petrus]
 

DavidCmoi92 a écrit :

Enfin moi j'ai toujours mon probleme alors si ca vous tente vous qui n'etaes pas debutant ;)
http://forum.hardware.fr/hardwaref [...] 5621-1.htm


 
[:spam] [:ban]
Tu te crois où, là? :??:
 
 
 
 
Bon sinon pour le problème initial, je vois rien de particulièrement plus simple comme méthode...quel est le soucis avec ça?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 29-08-2006 à 19:13:45    

CNeo a écrit :

Ma question est donc connaissez-vous qqch de plus simple, de plus rapide, de plus "éthique" ... bref de mieux ?


tu fais un loadHTML de ton document et derrière tu peux utiliser les fonctions DOM habituelles genre getElementById!

Reply

Marsh Posté le 29-08-2006 à 19:16:43    

anapajari a écrit :

tu fais un loadHTML de ton document et derrière tu peux utiliser les fonctions DOM habituelles genre getElementById!


pas bête...[:dawa]
 
Par contre la solution bête et méchante est p-e moins sujette aux problèmes de documents mal formés... [:god]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 29-08-2006 à 19:23:09    

RTFM :o

Citation :

Cette fonction analyse un document HTML contenu dans la chaîne source. Contrairement au XML, le HTML n'a pas besoin d'être bien formé pour être chargé.

Reply

Marsh Posté le 29-08-2006 à 19:37:48    

anapajari a écrit :

tu fais un loadHTML de ton document et derrière tu peux utiliser les fonctions DOM habituelles genre getElementById!


Daccord mais si je fais ça :


$doc = new DomDocument;
$doc->LoadHTMLFile('truc.htm');
$title = $doc->getElementById('corps')->nodeValue;


ça va m'afficher le contenu texte du div ayant pour id corps et va laisser de coté toute les balises. ;)  
 
Si tu connais un moyen d'avoir également les balises enfants alors je veux bien le connaître. :)  
 
A tu compris ?

Reply

Marsh Posté le 29-08-2006 à 19:49:34    

CNeo a écrit :

Daccord mais si je fais ça :


$doc = new DomDocument;
$doc->LoadHTMLFile('truc.htm');
$title = $doc->getElementById('corps')->nodeValue;


ça va m'afficher le contenu texte du div ayant pour id corps et va laisser de coté toute les balises. ;)  
 
Si tu connais un moyen d'avoir également les balises enfants alors je veux bien le connaître. :)  
 
A tu compris ?


Code :
  1. echo($title->ownerDocument->saveXML($title));


edit: c'est dans la doc hein ...

Message cité 1 fois
Message édité par anapajari le 29-08-2006 à 19:50:01
Reply

Marsh Posté le 30-08-2006 à 08:33:45    

je sais pas si ça peut aider, mais y'a pas longtemps, j'ai eu besoin de pouvoir récupérer toutes les balises d'une page html. Pour ça, fallait faire :
document.body.getElementByTagName('*');
 
Je pense qu'en remplaçant body par l'id de la balise div désirée, ça devrait le faire...

Reply

Marsh Posté le 30-08-2006 à 08:57:47    

Sauf que c'est du javascript ce que tu lui donnes là :o

Reply

Marsh Posté le 30-08-2006 à 09:12:44    

anapajari a écrit :

Code :
  1. echo($title->ownerDocument->saveXML($title));


edit: c'est dans la doc hein ...


 
Je vais essayer. :)

Reply

Marsh Posté le 30-08-2006 à 09:43:35    

anapajari a écrit :

RTFM :o

Citation :

Cette fonction analyse un document HTML contenu dans la chaîne source. Contrairement au XML, le HTML n'a pas besoin d'être bien formé pour être chargé.



 
Oui, mais il est garanti nulle part qu'il va pas se vautrer comme une grosse merde...chargé ça veut pas dire qu'il aura une structure "correcte" par rapport à ce que l'auteur voulait en faire...[:joce]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 30-08-2006 à 09:55:54    

skeye a écrit :

Oui, mais il est garanti nulle part qu'il va pas se vautrer comme une grosse merde...chargé ça veut pas dire qu'il aura une structure "correcte" par rapport à ce que l'auteur voulait en faire...[:joce]


 
+1
 
Et en plus je trouve que DOM est plus compliqué :whistle: mais si quelqu'un m'apporte la preuve que le temps d'execution est réduit avec DOM alors je veux bien m'y mettre. :)

Reply

Marsh Posté le 30-08-2006 à 10:06:44    

skeye a écrit :

Oui, mais il est garanti nulle part qu'il va pas se vautrer comme une grosse merde...chargé ça veut pas dire qu'il aura une structure "correcte" par rapport à ce que l'auteur voulait en faire...[:joce]


Tu noteras que l'auteur de la page lue n'est pas l'auteur de ce topic. Quoi qu'il arrive le programme de Cneo sera fonction du "travail" de quelqu'un d'autre. Donc aux moindres de changements tout risque de changer de toute façon.
 

CNeo a écrit :

+1
Et en plus je trouve que DOM est plus compliqué :whistle:


 [:roane]  
Ton truc ça tiens en 3 lignes avec dom:

Code :
  1. $doc = new DomDocument;
  2. $doc->LoadHTMLFile('truc.htm');
  3. $doc->saveXML($doc->getElementById('corps'));


Seul problème la DTD pour être sur du getElementById, mais c'est un autre problème.
 

CNeo a écrit :

mais si quelqu'un m'apporte la preuve que le temps d'execution est réduit avec DOM alors je veux bien m'y mettre. :)


Non ça doit être plus long avec DOM, par contre c'est moins compliqué à maintenir et puis si un jour ton div en question devient un p ça marche encore [:spamafote]

Message cité 1 fois
Message édité par anapajari le 30-08-2006 à 10:06:59
Reply

Marsh Posté le 30-08-2006 à 10:29:23    

anapajari a écrit :

Tu noteras que l'auteur de la page lue n'est pas l'auteur de ce topic. Quoi qu'il arrive le programme de Cneo sera fonction du "travail" de quelqu'un d'autre. Donc aux moindres de changements tout risque de changer de toute façon.


En fait si puisque c'est pour une admin. :)

anapajari a écrit :

Non ça doit être plus long avec DOM, par contre c'est moins compliqué à maintenir et puis si un jour ton div en question devient un p ça marche encore [:spamafote]


C'est vrai que quand on ne contrôle pas le contenu c'est mieux. :)  
 
Merci à tous pour toutes ces précisions. :jap:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed