Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/07/2011, 16h38   #1
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 31
Points : 11
Points : 11
Par défaut Extraitre le code d'une page Html

Bonjour,

Je détiends plusieurs pages html dans le fichier Archives de mon serveur et je voudrais pouvoir en php extraire les données de ces page HTML et tout récupérer dans une variable pour pouvoir l'afficher dans un mail et l'envoyer mais j'arrive uniquement à afficher son chemin >.>
Sauriez vous comment faire ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Class Mail
{
// Toutes mes variables déclarées en private
 
 public function mail()
 {
  $exp = "moi";
  $reply = "mail@mail.com";
  $subject ="titre";
 
  $chemin_page_html = $this->chemin_page();
  $message = ""; // Ici je voudrais récupérer tout le code de la page html
  // que cible le chemin de la ligne precedente
 
  if (mail($reply, $subject, $message)) echo "le message a été envoyé";
  else echo "Le message n'a pas pu être envoyé";
 }
 
 // Divers fonction pour récupérer des infos dont chemin_page()
 
}
Merci d'avance pour votre aide !
hidewak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 16h41   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 107
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 107
Points : 8 455
Points : 8 455
pour parser du HTML c'est DOMDocument
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 18/07/2011, 16h49   #3
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Bonjour,

regarde du côté de stream_get_contents()

__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/07/2011, 16h50   #4
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 31
Points : 11
Points : 11
Aah merci à vous deux ! C'est exactement ça.

stream_get_contents() a l'air moins compliqué que DOMDocument donc je vais voir de ce coté ! (merci pour le lien)
hidewak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 18h25   #5
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
A la rigueur utilise SimpleXML pour lire ton document mais je suis d'accord avec Stealth, il faut utiliser une lib de manipulation XML et non pas des manipulations de chaines de caractères: c'est pas fait pour ça.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 18h36   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 107
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 107
Points : 8 455
Points : 8 455
en relisant bien, si c'est juste pour récupérer une page et la mettre dans un mail, un file_get_content suffit, mais si il faut extraire des information de cette page la il faut utilisé DOMDocument
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 18h40   #7
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
Au moins en utilisant DOMDocument pour charger le flux, il s'assure que c'est bien du HTML qu'il mets dans son mail, tout n'est pas perdu
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 09h01   #8
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 31
Points : 11
Points : 11
Bonjour,

D'abord merci pour votre aide !

Je viens de tester stream_get_contents comme ceci :

Code :
1
2
3
4
5
if ($stream = fopen(HTTP.$msgchemin, 'r')) 
	{
		$message.= stream_get_contents($stream);
		fclose($stream);
	}
Mais je ne sais pas pourquoi c'est le Fopen qui plante, pourtant le chemin d'accès est le bon.

Citation:
Warning: fopen(--chemin--/Archives/2011/05/page.htm) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\wamp\www\--chemin--\tableauDeBord.php on line 95

Enfin bon vu vos avis je pense que je vais tout mettre en PJ
hidewak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 09h58   #9
Modérateur
 
Inscription : septembre 2010
Messages : 7 107
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 107
Points : 8 455
Points : 8 455
pourquoi fopen ? file_get_contents suffi
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 10h13   #10
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 31
Points : 11
Points : 11
Parce que j'étais partis sur un stream_get_contents au début et il faut bien ouvrir le fichier dans ce cas là non ? (j'ai repris un exemple de php.net)

Citation:
Envoyé par ska_root Voir le message
regarde du côté de stream_get_contents()
Fin bon au final comme je vais tout mettre en PJ je suis passé sur file_get_contents avec ce code ci :

Code :
1
2
3
4
5
$msghtml = $this->affichage_message_mail(); // retourne une parti du chemin d'acces au message
$msghtml = HTTP.$msghtml;
$message_html= file_get_contents($msghtml); 
// J'ai testé des variantes du genre $message_html= file_get_contents($msghtml, FILE_USE_INCLUDE_PATH); 
// ou encore : $message_html= file_get_contents($msghtml, true);

Mais au final je me prensds toujours le même message d'erreur :
Citation:
Warning: file_get_contents(http://--IP--/--Nom_de_l'appli--/Arc...11/05/page.htm) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\wamp\www\--Nom de l'appli--\Classes\Traitement\tableauDeBord.php on line 99
Si j'ai bien compris c'est au niveau du chemin d'acces mais je ne comprend pas car c'est bien le bon, de plus le nom du fichier à allé chercher contient des espaces ce peut il que ce soit cela ?
hidewak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 10h16   #11
Modérateur
 
Inscription : septembre 2010
Messages : 7 107
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 107
Points : 8 455
Points : 8 455
oui les espaces c'est pas top, il faut les encoder avec urlencode
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/07/2011, 10h30   #12
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 31
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2011
Messages : 31
Points : 11
Points : 11
Bon je viens de tester avec un message dont le nom ne comportait pas d'espaces et c'est belle et bien le problème ! >.<

En tout cas je vous remercie tous de m'avoir apporté votre aide !!
hidewak est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h14.


 
 
 
 
Partenaires

Hébergement Web