Felix Riesterer: eMail senden mit mail(), Codierungsprobleme

Beitrag lesen

Lieber tami,

was bitte spricht denn dagegen, dass Du Dir alle HTML-Ausgaben in einer Variable sammelst, um am Ende diese mit einem einzigen echo oder print an den Browser zu senden?

Na, damit ich den Text als Text schreiben kann und alles besser lesbar wird. mit .= " ... " und echo "<pre> ..." betreibt man aus meiner Sicht sinnfreie Obfuscation, da Du immer aufpassen musst, dass Du mit der Escaperei keine Fehler baust und überhaupt den eigentlichen Text, auf den es ankommt, unlesbarer machst. Und reine Textausgaben kannst Du dann nur über den Output-Buffer einfangen ...; in Deinem Fall bei den Headern insbesonders.

Ich bin mir jetzt ziemlich sicher, dass ich nicht verstanden habe, was Du eigentlich sagen willst. "Reine Textausgaben" willst Du in welchem Kontext wohin senden? Welche Debug-Möglichkeiten könntest Du benötigen, die sich mit einer reinen Textdatei nicht lösen ließen?

Da ich mir angewöhnt habe, meine neuen Projekte grundsätzlich lokalisierbar zu gestalten, verwende ich Textbausteine, die es grundsätzlich in de und en gibt, und die in einer JSON-Datei vorgehalten werden:

{  
    "apply-button-text" : {  
        "de" : "anwenden",  
        "en" : "apply"  
    },  
    "guestbook-title" : {  
        "de" : "Gästebuch",  
        "en" : "Guestbook"  
    }  
}

Solche Dateien sind in UTF-8 kodiert als "i18n.json"-Datei in meinem Projekt abgelegt und werden dann mittels einer "translate" genannten Funktion an Ort und Stelle verwendet. Wenn man es sich noch schöner machen will, dann kann man diese Textbausteine auch gleich in Templates nutzen:

<html>  
    <head>  
        <title>{#guestbook-title}</title>  
    </head>  
    <body>  
        <h1>{#guestbook-title}</h1>  
        <p>  
            <input name="apply" type="submit" value="{#apply-button-text}" />  
        </p>  
    </body>  
</html>

Mit einer schönen Ersetzungsfunktion lassen sich so die textuellen Bestandteile schön von der Programmlogik trennen und benötigen kein Geschwurbel mit <?= ...?> mehr. Auch der OutputBuffer wird so nicht mehr benötigt, da alles HTML in einer Variable vorgehalten wird, bis es an den Browser gesandt wird.

Wozu will man seine Templates mit PHP-Code zumüllen??

Liebe Grüße,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)