Seite 1 von 2

%s - wie funktioniert es?

Verfasst: 01.02.2006 17:50
von Bonaparte
ich bin gerade dabei ein kleines programm zu schreiben und möchte bestimmte stellen eines textes, der in einer db gespeichert ist, ersetzen.

ich habe mir folgendes überlegt ähnlich wie bei phpbb die email-templates:
db hat geschrieben:hier ist der text %s bla bla bla %s wieder text %s
wenn der text geladen wird, dann sollen diese zeichen %s durch bestimmte werte ersetzt werden.

wie kann ich das realisieren?

Verfasst: 01.02.2006 19:21
von Gast210225
Guck dir das mal an ;)


Viele Grüße,
Johannes

Verfasst: 01.02.2006 19:46
von Bonaparte
Danke dir, funktioniert so, wie ich es mir vorgestellt habe! ;)

Verfasst: 01.02.2006 19:50
von Gast210225
Bitte ;)

Verfasst: 02.02.2006 02:32
von Bonaparte
ich hätte noch eine kleine frage zum thema.

als ich das alles mit einer ganz normalen html-ausgabe getestet habe, war alles i.o. nun wollte ich die daten per mail verschicken. die erste hälfte wird als html ausgegeben und nur die zweite per mail versandt. was mache ich falsch?

Code: Alles auswählen

$mhead = "Content-Type: text; charset=iso-8859-1\n";
$mhead .= "From: ".$config['c_email']."\n";
$mhead .= "Reply-To: ".$config['c_email']."\n";
$mhead .= "Return-Path: ".$config['c_email']."\n";

$mbody = printf($config["c_partner_bestaetigung"], $partner["u_pid"], $partner["u_anrede"], $partner["u_name"], $order["o_auftragsnr"], $order["o_empf_vorname"], $order["o_empf_name"]);
$mbody .= $config["c_belehrung"];
$mbody .= $config["c_signatur"];

$msubject = printf($config["c_partner_bestaetigung_betreff"],$order["o_auftragsnr"]);

@mail($partner["u_email"],$msubject,$mbody,$mhead);

Verfasst: 02.02.2006 13:38
von Reyx
Ohne mich jetzt groß durch deinen Quellcode gewühlt zu haben: Ich sehe nirgendwo eine echo() oder print()-Anweisung (oder äquivalente) ...

Verfasst: 02.02.2006 13:47
von Bonaparte
d.h.? (bezogen auf dieses script)

Verfasst: 02.02.2006 13:54
von Reyx
Bonaparte hat geschrieben:die erste hälfte wird als html ausgegeben
Das heißt, dass nix ausgegeben wird, wenn du dem Parser nicht (z.B. in Form einer print()- oder echo()-Anweisung) mitteilst, dass das geschehen soll.

Ansonsten definiere deine Frage "Was mache ich falsch" etwas genauer ;)

Verfasst: 02.02.2006 14:09
von Bonaparte
hallo, ist ganz einfach. das ist schon der code der die email sendet

Um einen vodefinierten Text, der in einer DB gespeichert ist, mit bestimmten Werten auszugeben, nutze ich die Funktion sprintf.

Eine Hälfte (mit dem Argument %s) wird auf der Seite ausgegeben (warum auch immer) und der Rest (ohne irgendwelchen Argumenten) ganz normal per eMail versandt.

Verfasst: 02.02.2006 14:20
von Reyx
Und was ist dann dein konkretes Problem?

sprintf() formatiert dir nur den Text, gibt ihn aber nicht aus!