CodeIgniter Загрузить файл с переменными - PullRequest
1 голос
/ 26 марта 2012

Хорошо, у меня есть файл, который я загружаю, который используется для создания электронного письма.

Есть ли способ передать ему переменные и заполнить файл значениями переменных, а затем вставить его в тело сообщения для отправки?

Вот простой код контроллера:

$var = 'test';    
$ci->load->file('Test/view/dialog.php',true);

HTML-файл:

<strong><?php echo $var; ?></strong>

Обратите внимание, что файл dialog.php находится в корневом каталоге в каталоге «Test», поэтому я не могу использовать $ this-> load-> view ();

Я посмотрел в Loader.php и кажется, что метод file () не может этого сделать. Может быть есть какие-то другие решения для этого?

Извините за плохой английский язык

Ответы [ 3 ]

3 голосов
/ 26 марта 2012

Я предлагаю создать файл представления шаблона и проанализировать его с помощью библиотеки синтаксического анализатора, вставив результат этого в ваше тело сообщения.Таким образом, вы не смешиваете PHP с вашим HTML.http://codeigniter.com/user_guide/libraries/parser.html

Теперь приведенный вами пример:

<?php
$this->load->library('parser');
$message_body = $this->parser->parse('myfile.php',array('var' => 'test'),TRUE); //passing True as the last parameter makes the parser return the string instead of passing it to the output class.
?>

Файл HTML:

<strong>{var}</strong>
1 голос
/ 24 октября 2012

Лучший подход к этому - использование

$emailBody = $this->load->view('file_name', $data, true);
//file_name of the view to load
//$data you want to pass
// true so it will return as string and not load to browser.
0 голосов
/ 27 марта 2012

Если вы не можете использовать вид. Вы можете сделать это с помощью буферизации вывода в вашем контроллере:

$var = 'Test';

ob_start();

include('./Test/view/dialog.php');
$msg = ob_get_contents();

ob_end_clean();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...