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

  FORUM HardWare.fr
  Programmation
  PHP

  Isoler un bout de code HTML dans une page PHP ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Isoler un bout de code HTML dans une page PHP ?

n°1373567
bab
Posté le 23-05-2006 à 20:14:08  profilanswer
 

J'ai une page PHP qui utilise des CSS pour son apparence.
Je récupère le code source d'un email (qui est en HTML) et je l'affiche dans cette page.
 
LE problème : beaucoup d'emails ont leur propres <style> donc quand j'affiche l'email dans ma page, il s'affiche bien comme il faut MAIS il me change tout le style de ma page entière en meme temps :(
 
exemple : ma page PHP a un fond rouge. j'affiche un email qui a un fond bleu dans son contenu. resultat => toute ma page se retrouve avec un fond bleu.
 
une idée pour isoler le code PHP de m'email pour ne pas qu'il empiete sur le style de ma propre page ? (sans faire de frames ou iframes)


Message édité par bab le 24-05-2006 à 09:00:35
mood
Publicité
Posté le 23-05-2006 à 20:14:08  profilanswer
 

n°1373570
dwogsi
Défaillance cérébrale...
Posté le 23-05-2006 à 20:24:35  profilanswer
 

Du code PHP dans un e-mail???

n°1373609
bab
Posté le 23-05-2006 à 21:40:39  profilanswer
 

oups, nan, je voulais dire du code HTML.
 
en gros, lutter contre toutes les balises qui ont du style dedans

n°1373744
bab
Posté le 24-05-2006 à 09:00:52  profilanswer
 

personne ?

n°1373748
mIRROR
Chevreuillobolchévik
Posté le 24-05-2006 à 09:04:22  profilanswer
 

un lien ?

n°1373753
clem85
http://www.luttiau.info
Posté le 24-05-2006 à 09:14:30  profilanswer
 

je serait toi, je ferais une recherche de tout ce qui touche au css dans ton code source avec des regex (de php) puis je l'éliminerait simplement ...

n°1373754
bab
Posté le 24-05-2006 à 09:14:48  profilanswer
 

en gros la source est dans ce genre là :

Code :
  1. <HTML>
  2. <HEAD>definition de mon style a moi</HEAD>
  3. <BODY>
  4.     Voici le mail
  5.     <HTML>
  6.     <HEAD>definition du style du mail qui devient le style de la page complete</HEAD>
  7.     <BODY>
  8.            Contenu du mail
  9.     </BODY>
  10.     </HTML>
  11. </BODY>
  12. </HTML>


Message édité par bab le 24-05-2006 à 09:15:09
n°1373760
Xav_
The only one...
Posté le 24-05-2006 à 09:22:54  profilanswer
 

pourquoi te contenter de virer le style de l'email ?
celui-ci te rajoute également des balises <body> qu'il ne faudrait pas, et aussi <html>...etc...
 
comme clem85, je te dirais de chercher du coté des regex, pour ne récupérer du mail, que ce qui se trouve entre les balise <body>de celui-ci (en gros, tu n'a besoin que du contenu du mail, et surtout pas du reste)


Message édité par Xav_ le 24-05-2006 à 09:23:21

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°1373767
clem85
http://www.luttiau.info
Posté le 24-05-2006 à 09:29:56  profilanswer
 

exemple très simple, que tu doit modifier et paufiner afin d'arriver a ton resultat parfait:
 

Code :
  1. <?php
  2. $sFile = file_get_contents("url de ta page ou extraire ton code source", False, $cxContext);
  3. $pieces = explode("HEAD", $sFile);
  4. $piece = $pieces[0];
  5. $piece .= $pieces[2];
  6. $key = explode(" ", $piece);
  7. //$key est ta page html que tu a inclu plus haut dans les balises <head> ni </head>
  8. ?>


 
 :pt1cable:  Enjoy à toi maintenan d'adapter cela a ton gout  :hello:

n°1373774
nemohp
Adepte du provisoire permanent
Posté le 24-05-2006 à 09:35:59  profilanswer
 

Bab > la solution est simple, tu affiche ton mail dans une <iframe>
 

Code :
  1. <HTML>
  2.       <HEAD>definition de mon style a moi</HEAD>
  3.       <BODY>
  4.          Voici le mail
  5.          <iframe>
  6.               <HTML>
  7.               <HEAD>definition du style du mail qui devient le style de la page complete</HEAD>
  8.               <BODY>
  9.                 Contenu du mail
  10.               </BODY>
  11.          </iframe>
  12.          </HTML>
  13.       </BODY>
  14.       </HTML>

mood
Publicité
Posté le 24-05-2006 à 09:35:59  profilanswer
 

n°1373790
clem85
http://www.luttiau.info
Posté le 24-05-2006 à 09:53:21  profilanswer
 

je n,e pense pas que sa soit valide nemohp, cette personne veut que le css de SON site soit aussi appliqué au mail ... enfin si j'ai compris ..

n°1373990
nemohp
Adepte du provisoire permanent
Posté le 24-05-2006 à 12:13:34  profilanswer
 

clem85 > non, tu n'as pas compris. Il est clairement expliqué dans son premier message qu' il veux que les DEUX styles soient distincts

n°1374010
Xav_
The only one...
Posté le 24-05-2006 à 12:27:36  profilanswer
 

et il a aussi clairement édité son 1er post pour dire qu'il ne voulait pas de frame (ou iframe) ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°1374013
nemohp
Adepte du provisoire permanent
Posté le 24-05-2006 à 12:29:58  profilanswer
 

Xav_ a écrit :

et il a aussi clairement édité son 1er post pour dire qu'il ne voulait pas de frame (ou iframe) ;)


 
en effet désolé (pourtant c'était bien avec les IFRAMES  :D )
 

n°1374572
bab
Posté le 24-05-2006 à 20:25:18  profilanswer
 

oui, je voudrais garder les 2 styles distinctement et sans utiliser si possible des frame ou iframe
 
mais j'ai l'impression que c'est pas gagné ...

n°1374605
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 24-05-2006 à 21:24:13  profilanswer
 

ça ne fonctionne pas si tu mets une classe ou un id à ton body principal ?
C'est pour faire un client de messagerie ?
Regarde comment font les autres clients de messagerie.

n°1374607
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 24-05-2006 à 21:26:04  profilanswer
 

Sinon, pour le coup, j'aurais fait une iframe aussi.

n°1374675
bab
Posté le 24-05-2006 à 22:43:19  profilanswer
 

non, ça ne marche pas avec "class" dans le body car beaucoup de styles passent outre et s'appliquent à l'ensemble du naviguateur.
oui c'est pour faire un client de messagerie.
 
j'ai essayé une iframe
ça marche bien sauf pour un point :
pour décoder les emails, j'utilise une classe qui me retourne diverses choses comme par exemple le message (plutot indispensable  :D ) et également un tableau avecles fichiers joints  [:athlonxp2100+] . Or, ce tableau je peux le récuperer sans problème sans utiliser de iframe (logique, vu que c'est la meme page) alors qu'avec une iframe, les deux pages sont complétement indépendantes d'où pb.


Message édité par bab le 24-05-2006 à 22:46:53
n°1374755
mIRROR
Chevreuillobolchévik
Posté le 25-05-2006 à 08:41:22  profilanswer
 

et si tu mets ton mail dans un div pwet et que tu remplaces body par pwet dans le style du mail ?(parce que visiblement c est ca qui casse ton propre style mais peut etre j ai rien compris)

n°1374949
bab
Posté le 25-05-2006 à 16:12:03  profilanswer
 

mIRROR a écrit :

et si tu mets ton mail dans un div pwet et que tu remplaces body par pwet dans le style du mail ?(parce que visiblement c est ca qui casse ton propre style mais peut etre j ai rien compris)


 
le truc c'est que je voudrais garder le style de chacun mais bien àsa place car si je remplace le style du mail, pour certains ça va mais d'autres deviennent pas bien du tout.

n°1375085
mIRROR
Chevreuillobolchévik
Posté le 25-05-2006 à 20:31:20  profilanswer
 

mais tu gardes le style du mail  
 
peut etre je m explique mal aussi :/
tu ne changes que le nom le style ne change pas
 
faut juste que t injecte l interieur du body (parce que 2 <html> c est pas beau et ca doit pas etre valide) dans ta page pour garder une structure correcte de ton document

n°1375086
FlorentG
Unité de Masse
Posté le 25-05-2006 à 20:34:02  profilanswer
 

Faut regarder ce qui se fait ailleurs : hotmail par exemple supprime toutes les balises style qu'il rencontre. Yahoo c'est pareil je crois.

n°1375178
bab
Posté le 25-05-2006 à 22:40:42  profilanswer
 

mIRROR a écrit :

mais tu gardes le style du mail  
 
peut etre je m explique mal aussi :/
tu ne changes que le nom le style ne change pas
 
faut juste que t injecte l interieur du body (parce que 2 <html> c est pas beau et ca doit pas etre valide) dans ta page pour garder une structure correcte de ton document


 
je ne vois pas vraiment ce que tu veux dire.
car peut importe les balises <html>,<body>,etc ..., certains styles (comme la modification de l'apparence des ascensseurs) modifie le naviguateur, quelque soit son emplacement dans la page

n°1375179
bab
Posté le 25-05-2006 à 22:41:10  profilanswer
 

FlorentG a écrit :

Faut regarder ce qui se fait ailleurs : hotmail par exemple supprime toutes les balises style qu'il rencontre. Yahoo c'est pareil je crois.


 
je crois que c'est ce que je vais finir par faire oui ...

n°1375195
mIRROR
Chevreuillobolchévik
Posté le 25-05-2006 à 23:02:15  profilanswer
 

bab a écrit :

je ne vois pas vraiment ce que tu veux dire.
car peut importe les balises <html>,<body>,etc ..., certains styles (comme la modification de l'apparence des ascensseurs) modifie le naviguateur, quelque soit son emplacement dans la page


 
oui mais si l ascenceur est dans ton div ca salope pas ta propre css  
et puis je n y ai pas pensé parce qu officiellement c est pas tres valide comme code
(meme si je peux pas m empecher de le foutre sur tous mes sites :d)
mais en principe un style ne remonte pas ^^ tu le bloques dans ton div point barre :/

n°1375333
bab
Posté le 26-05-2006 à 09:15:32  profilanswer
 

mIRROR a écrit :

oui mais si l ascenceur est dans ton div ca salope pas ta propre css  
et puis je n y ai pas pensé parce qu officiellement c est pas tres valide comme code
(meme si je peux pas m empecher de le foutre sur tous mes sites :d)
mais en principe un style ne remonte pas ^^ tu le bloques dans ton div point barre :/


 
ça c'est ce que tu dis. moi j'ai fait l'essai et ça sort du div ...

n°1376064
mIRROR
Chevreuillobolchévik
Posté le 27-05-2006 à 21:06:20  profilanswer
 

[:spamafote]
 
c est sur que si tu preferes laisser tomber c est pas moi qui vais y reflechir a ta place :/

n°1376123
bab
Posté le 28-05-2006 à 01:43:23  profilanswer
 

mIRROR a écrit :

[:spamafote]
 
c est sur que si tu preferes laisser tomber c est pas moi qui vais y reflechir a ta place :/


 
j'ai jamais dis ça sauf que c'est facile de dire que ça sort pas du div
j'ai essayé plein de trucs différents et certains style s'imposent en maitre, que ça soit en cloisonnant dans des div, table, etc ...

n°1376539
Xav_
The only one...
Posté le 29-05-2006 à 11:19:51  profilanswer
 

mettre la partie html du mail dans un div ne suffira pas en effet.
 
Il va falloir que pour toutes les propriété de style défini pour le mail, tu rajoute "#nom_du_div" devant, donc ça va faire quand meme une moulinette avec pas mal de traitement pour garder les 2 styles dans une seul page (puisque pas de frames) sans que les 2 ne viennent se perturber l'un l'autre...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°1377163
mIRROR
Chevreuillobolchévik
Posté le 30-05-2006 à 07:11:36  profilanswer
 

Xav_ a écrit :

mettre la partie html du mail dans un div ne suffira pas en effet


 
la partie body [:aloy]
 

Xav_ a écrit :

Il va falloir que tu rajoute "#nom_du_div" devant


 
c est a ca que je pensais oui
 
EDIT :
great masta capelo made me do it :jap:

Message cité 1 fois
Message édité par mIRROR le 30-05-2006 à 07:21:03
n°1377208
bab
Posté le 30-05-2006 à 09:41:28  profilanswer
 

mIRROR a écrit :

la partie body


 
comment tu penses faire pour séparer la partie body uniquement ?


Message édité par bab le 30-05-2006 à 09:41:45
n°1377942
Xav_
The only one...
Posté le 31-05-2006 à 09:58:35  profilanswer
 

une regex pour isoler ce qui se trouve entre <body> et </body>...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
mood
Publicité
Posté le   profilanswer
 


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

  Isoler un bout de code HTML dans une page PHP ?

 

Sujets relatifs
pas la bonne page qui s'affiche, JAVA en cause ?PHP est caractéres réservés
prob communication formulaire popup page appelante variable phpTrier par ordre alphabetique avec des noms au format HTML
Enregistrer en PHP des infos dans un fichier PHPcompiler PHP avec GD2 ?
[.net c++] expliction d'un codeSNMP sous PHP/Windows
[HTML] Pb de mise en page 
Plus de sujets relatifs à : Isoler un bout de code HTML dans une page PHP ?


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