|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éprouvé
![]() Inscription : décembre 2005 Messages : 818 ![]() |
Désolé pour le titre, ce n'est pas facile à résumer... Mon problème est le suivant, j'espère que vous pourrez m'aider à le résoudre: J'ai un fichier newsletter.php qui permet de créer dynamiquement le contenu d'une newsletter, c'est-à-dire nombre de liens de menu et d'article a volonté qui seront inclus dans la newsletter HTML. Jusque là ça va. Je problème, c'est que j'aimerais créer des skins pour les newsletter. Donc lorsque j'appelle newsletter.php, celui-ci inclura, par exemple, "models/default/layout.php" Dans le fichier layout.php, on retrouve une mise en forme HTML avec un minimum de PHP pour inclure les données dynamiques. Le seul problème, c'est : Comment pouvoir générer en HTML tout ça? passer les variables au layout.php en l'incluant dans newsletter.php qui lui, écrira un fichier du type newsletter_XX.html. Donc faire une copie du layout, une fois les données PHP remplie au format HTML... Un grand merci. Si je n'ai pas été assez clair, dites le. |
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Pourquoi écrire un fichier newsletter_XX.html ? Pourquoi pas faire un simple include à chaque affichage de la page ?
__________________
Get your motor runnin' Head out on the highway... |
|
|
00
|
|
|
#3 |
|
Membre éprouvé
![]() Inscription : décembre 2005 Messages : 818 ![]() |
Parce que la page doit etre générée en HTML pour être envoyée par e-mail, et pour ensuite est sauvée au format HTML dans un répertoire.
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Ok. Bonne réponse
Je te conseille de te documenter sur la famille des fonctions ob_xxxx, elles te permettent de manipuler le buffer de sortie : http://us2.php.net/manual/fr/ref.outcontrol.php
__________________
Get your motor runnin' Head out on the highway... |
|
|
00
|
|
|
#5 |
|
Membre éprouvé
![]() Inscription : décembre 2005 Messages : 818 ![]() |
C'est une idée effectivement, si la après la mise en cache, d'un fichier php généré, on peut récupérer le fichier html (celui en cache donc), ça peut marcher aussi.
J'ai trouvé une alternative en tout cas, au lieu de passer par un layout.php. Je fais comme ceci. Je décomposse chaque modèle en 4 partie : top.html et bottom.html (contenu de mise en forme de la newsletter) et menu.html (qui représente le modèle pour chaque élément du menu et item.html (qui représente un article de la newsletter ou paragraphe si on préfère) J'inclus dans $newsletter=file_get_contents(bottom.html) puis pour chaque itération j'inclus respectivement $newsletter.= $tmp (dans chaque itération, avec un str_replace je remplace le contenu "modèle" par la variable PHP) puis je ferme avec bottom.html et j'écris le fichier avec fwrite. Merci pour le lien, je verrai ce qui est le mieux. |
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Je pense que l'option str_replace sera plus gourmande
__________________
Get your motor runnin' Head out on the highway... |
|
|
00
|
|
|
#7 |
|
Membre éprouvé
![]() Inscription : décembre 2005 Messages : 818 ![]() |
Et ereg aussi je suppose...
|
|
00
|
|
|
#8 | ||||
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Ereg ? Encore pire que str_replace
Mais mon sentiment reste un apriori. Je pense intuitivement que ce code : Code :
Code :
Reste à démontrer ces affirmations par des benchmarks...
__________________
Get your motor runnin' Head out on the highway... |
||||
|
|
00
|
|
|
#9 |
|
Membre éprouvé
![]() Inscription : décembre 2005 Messages : 818 ![]() |
C'est a tester effectivement!
Merci en tout cas pour cette solution |
|
00
|
|
|
#10 | ||
|
Membre éprouvé
![]() Inscription : décembre 2005 Messages : 818 ![]() |
Je viens de me renseigner sur l'utilisation du buffer de sortie.
Seulement je ne suis pas sur de comprendre le code suivant: Code :
Mais ce code ne remplacera pas les variables il me semble? il faudra quand meme passer par un str_replace() non? |
||
|
00
|
|
|
#11 | ||
|
Expert Confirmé Sénior
![]() Inscription : septembre 2004 Messages : 5 421 ![]() |
Ca dépend du fichier... Avec un fichier newsletter.html comme ça :
Code html :
__________________
Get your motor runnin' Head out on the highway... |
||
|
|
00
|
|
|
#12 |
|
Membre éprouvé
![]() Inscription : décembre 2005 Messages : 818 ![]() |
Ok, merci de la réponse, j'ai pigé now!
|
|
00
|
Copyright © 2000-2012 - www.developpez.com