Hallo
Bei einer Nurtextemail? Wie heißt es doch so schön: "Immer dem Kontext entsprechend maskieren!". ;-)
was meinst du denn genau immer den kontext maskieren? kannst du es näher erläutern?
Wenn du als Ausgabeformat HTML haben willst, musst du etwaige Sonderzeichen in deinen Strings den HTML-Reglen entsprechend maskieren. Bei PHP tut das die Funktion htmlspecialchars für dich. Willst du eine Eingabe in eine MySQL-Datenbank tätigen, müssen Strings nach dessen Reglen maskiert werden um bei der Übergabe keine Fehler zu verursachen. PHP hat auch dafür eine Funktion, nämlich mysql_real_escape_string.
Dies sind nur zwei Beispiele. Bei Aus- und Übergabeoperationen in anderen Sprachen, also Kontexten, müssen die Strings den Regeln des Kontextes folgen.
mein Problem ist, dass ich in ein php-skript gar nicht weiß, wie ich in strMailtext = ""; also in den "" html befehle reinbekomme wie zum beispiel breite (width und etc).
Alles, was zwischen den Anführungszeichen steht, ist ein String. Wenn du also HTML als Ausgabeformat haben willst, musst du in deinen Strings eine HTML-Seite zusammenbauen. Wenn es reiner Text werden soll, gibt es keine Maskierungen. Die Strings lassen sich mit den von PHP mitgelieferten Stringfunktionen aber auf vielfältige Weise manipulieren.
Ich hätte das gerne schon in einer tabellen form mit fester zeilenbreite und etc.
Das wissen wir bereits. In meinem anderen Posting habe ich dir geschrieben, dass du eine HTML-Email zusammenbauen kannst, eine passende Formatierung der Email aber auch in einer Textemail zu bewerkstelligen ist. Letzteres habe ich mit einem recht ausführlichen Beispiel demonstriert.
leerzeichen einfügen hilft da nicht recht viel, da trotzdem immer zeilen verrückungen stattfinden, wenn was anderes in der tabelle stehen soll. man kann es nur für ein bestimmtes format mit leerzeichen machen, für alle macht es kein sinn.
Klar, das Format sollte dir bekannt sein. Wenn das so ist, kannst du die Länge der Strings mit str_pad kontrollieren.
ArtikelNr. Artikelbeschreibung Menge Preis
000-0001 Erstes Artikel 2 20
000-00020 Zweites Artikel 11 110ich habe es schon str_pad() versucht, damit kann man zwar eine bestimmte länge für ein string einstellen, aber wenn das string kleiner als die länge ist, wird es mit leerzeichen gefüllt, oder mit anderen formatierten eingaben. und kommt es ja nicht so sauber wie oben raus....
Doch, genau das tut es[1], wenn der Kontext eine Textdatei oder eine Nurtextemail ist, denn da werden alle Zeichen, also auch die Leerzeichen, angezeigt. Das sieht dann genauso aus, wie in deinem obigen Block. Aber das habe ich dir ja schon geschrieben.
HTML fasst aber alle Whitespaces (Leerzeichen, Zeilenumbrüche, Tabs) zu einem Leerzeichen zusammen. Allerdings kannst du in HTML die Ausrichtung der Texte über Attribute (unschön) oder CSS (in Emails nur als Inlinestyles oder CSS-Block im Dokumentkopf) steuern.
[1] es ist genau das, was du da oben händisch getan hast
Tschö, Auge
PS: Die Verwendung der für die deutsche Sprache vorgesehenen Großschreibung (Satzanfang, Eingennamen, Substantive (auch gerne Dingworte genannt (*brrr*)) erhöht die Lesbarkeit von Texten ungemein.