[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 メーリングリストの案内

AltStyle によって変換されたページ (->オリジナル) /