2014-11-11 4 views
0

То, что я пытаюсь сделать, это отправить файл первенствовать в качестве приложения, который создается из Smarty TPL файла, поэтому в настоящее время это то, что я делаю:Как содержать файл * .tpl в переменной php?

$smarty->display('export-report.tpl'); 
    $name=str_replace(" ","",$_POST['catname'])."_".date('d-m-Y'); 
    Header("Content-Type: application/vnd.ms-excel"); 
    Header("Content-Disposition: attachment; filename=".$name.".xls"); 

Но то, что я хочу сделать next вместо того, чтобы загружать этот файл excel непосредственно из браузера, я хочу его прикрепить и отправить его по электронной почте, чтобы сделать это, я сначала сохраняю файл на своем сервере и создаю этот файл excel. Мне нужно содержание excel (html, содержащийся в файле tpl), внутри переменной php.

Так что мой вопрос, как я получаю это:

$smarty->display('export-report.tpl'); 

Чтобы содержаться в переменной, как это:

$content 

Спасибо.

ответ

0

Вы должны использовать fetch Этот метод так:

$content = $smarty->fetch('export-report.tpl'); 

EDIT

Может быть, что вы хотите просто изменить порядок таким образом:

$name=str_replace(" ","",$_POST['catname'])."_".date('d-m-Y'); 
header("Content-Type: application/vnd.ms-excel"); 
header("Content-Disposition: attachment; filename=".$name.".xls"); 
$smarty->display('export-report.tpl'); 

или

$content = $smarty->fetch('export-report.tpl'); 
$name=str_replace(" ","",$_POST['catname'])."_".date('d-m-Y'); 
header("Content-Type: application/vnd.ms-excel"); 
header("Content-Disposition: attachment; filename=".$name.".xls"); 
echo $content; 
+0

Это захватывает HTML-код, содержащийся в этом tpl как текст, но то, что я за ним, похоже, отображает его в электронной таблице Excel. То же, что я делал, изменяя тип контента и позволяя пользователю загружать электронную таблицу, которая отображает этот html. Вы меня поняли? – SQLDummy

+0

@SQLDummy Я обновил свой ответ –

Смежные вопросы