[PHP-users 20795]Re: smartyテンプレートをメモリーから読み込む 出力をメモリーに読み込む
shin ohira
shin @ ohira.com
2004年 3月 15日 (月) 09:57:19 JST
>その出力結果をWEBブラウザーではなく変数$bodyに受け取り、
>mail("送り先","件名",$body);
>のようにメールを送信したいと考えております。
同じような処理をしていますので、参考になるかもしれませんのでメールします。
CSV からデータを読み込んで、メールする処理にSmartyを使っております。
<?
require_once("FastTemplate/class.FastTemplate.php") ;
mb_language("ja") ;
mb_http_output('JIS');
global $tpl ;
$tpl = new FastTemplate("./");
$tpl->define(
array(
"subject" => "subject.txt" ,
"body" => "body.txt" ,
"head" => "head.txt"
)
) ;
$fp = fopen("./ss.csv","r");
$tag = fgetcsv($fp, 1000, ",") ;
$num = count($tag) ;
while($data = fgetcsv($fp, 1000, ",")) {
for($i=0; $i < $num; $i++) {
if($data[$i] === "#") {
$data[$i] = sprintf("\n"); ;
}
$tpl->assign("$tag[$i]" , $data[$i]) ;
}
$to = trim($tpl->get_assigned("__MAIL__"));
$tpl->parse("SUBJECT", "subject") ;
$subject = $tpl->fetch("SUBJECT") ;
$tpl->parse("BODY", "body") ;
$body = $tpl->fetch("BODY") ;
$tpl->parse("HEAD", "head") ;
$head = $tpl->fetch("HEAD") ;
mb_send_mail( $to, $subject, $body, $head) ;
printf("$to\n");
}
fclose($fp);
?>
>【テンプレート出力の結果をメモリーに受け取る】
>前述の
>$smarty->display("テンプレートファイル名");
>を行うことにより通常WEBブラウザーに出力が送信されると思いますが、
>その出力を変数に取り込みたいと思います。
>用途としましては、例えば動的なメールを作成するに当たりSmartyを利用した場合、
>その出力結果をWEBブラウザーではなく変数$bodyに受け取り、
>mail("送り先","件名",$body);
>のようにメールを送信したいと考えております。
>
>以上のような使用方法多々あると思いますが、私の調べる限りでは情報を見つけるこ
>とが出来ませんでした。
>お手数ですが、ご存知の方いらっしゃいましたら教えていただければと思います。
PHP-users メーリングリストの案内