phpbar.de logo

Mailinglisten-Archive

[php] Einbindung von templates oder include vs file

[php] Einbindung von templates oder include vs file

Henning Heil lists at h-quadrat.com
Sam Nov 22 18:42:41 CET 2003


Servus miteinand'!

Ich binde momentan in ein tool zu Versand von newsletters html- und 
plaintext-Dateien als templates ein. Das geschieht bei zwei Schritten, 
nämlich während der Vorschau und nach dem eigentlichen Versand.

Beispiel template_html.inc.php:

###########################
<html>
<head> ... </head>
<body class="mailing" marginheight="0" marginwidth="0">
<table cellpadding="0" cellspacing="0" border="0" width="610" 
background="http://loveland.lv/images/background_h_xl.jpg">
<?php
if(isset($_SESSION['intro'])) {
?>
<tr>
    <td width="440" class="mailing"><?php echo 
nl2br(stripslashes($_SESSION['intro'])); ?></td>
</tr>
<?php
}
?>
...
###########################

Aufruf in Hauptdatei mit include(template_html.inc.php);

Bsp. ist stark gekürzt und etwas abgewandelt, für plaintext kann sich 
der bewanderte Entwickler das ja analog etwas weniger aufwändig auch 
vorstellen.

Nun, bei includes funktioniert das sehr gut, ich kann eine Vorschau 
innerhalb von anderen Seiten anzeigen und die Variablen werden auch alle 
schön ersetzt und der Krams wird sauber angezeigt - super (das gibt 
sicher keinen w3c konformen HTML-code wenn man einen zweiten body-tag 
includiert, klar)!

ABER: zum Versand mit phpmailer brauche ich jetzt diese Datei in 
gleichem Zustand wie wenn ich sie mit include einbinde in einer einzigen 
Variablen, die ich dann an phpmailer übergeben kann.

inculde in eine Variable kann ich lt. Doku vergessen, da ja nirgends ein 
return in meinem template_html.inc.ph zu finden ist und mit den 
file-Operationen aus den FAQ ist auch wenig zu machen: wenn ich die 
Datei in einen String einlese werden leider meine <?php ... ?> 
Anweisungen als Text behandelt, versteht sich ja auch irgendwie, und 
sonst habe ich nicht so viele pralle Ideen!

Nur eine, nämlich der template_html.inc.php folgendes Aussehen zu geben:

$htmlmailbody = "<html>";
$htmlmailbody .= "<head>";
$htmlmailbody .= "...";
$htmlmailbody .= "</head>";

da bin aber recht lustlos . . . das Verfahren wird ja bei komplizertem 
HTML-code nicht netter . . .

Irgend welche rettenden Hinweise in dieser misslichen Lage?

Danke für Eure Beiträge,

Henning


php::bar PHP Wiki   -   Listenarchive