2013-12-21 2 views
0

Я пытаюсь отобразить файл php, а затем вернуть его как html для отправки по электронной почте, как бы я это сделал? Вот пример кода, который я использую:Render Php-файл, а затем вернуть его как html

public function setPHP($php) 
{ 
    ob_start(); 
    $phpsend = (include $php); 
    $this->html = (string) ob_get_contents(); 
    ob_end_clean(); 
} 

Вот как я вызываю функцию.

$php = file_get_contents(NHM_PLUGIN_DIR . 'assets/templates/newhomesguide.php'); 
    $css = file_get_contents(NHM_PLUGIN_DIR . 'assets/css/email_template.css'); 

    $cssToInlineStyles->setPHP($php); 
    $cssToInlineStyles->setCSS($css); 

Я пытаюсь изменить CSSToInlineStyles по Tijs Verkoyen, который встраивает CSS с HTML, я просто пытаюсь делать то же самое, но с PHP файл, который имеет функциональность.

enter image description here

+0

Этот подход сработал для вас? Вы даже пробовали? Какая часть не работает? –

+0

Вы должны быть немного более конкретными в том, что именно проблема. –

+0

Да, я обновил сообщение с ошибкой –

ответ

1

Я думаю, что вы очень близки. Вот как я это сделаю. Оцененный файл будет находиться в $this->html, как вы хотите, и он будет немедленно отправлен в выходной поток после оценки.

public function setPHP($php) 
{ 
    if(!file_exists($php)) // Some error handling here maybe? 
     die('File ' . $php . ' DNE'); 

    // Eval the $php file and store it in a variable 
    ob_start(); 
    include $php; 
    $this->html = ob_get_clean(); 

    // Send the evaluated file to the output stream 
    echo $this->html; 
} 
+0

Как это бесполезно? Я сделал это миллион раз. Возможно, вы захотите попробовать и прочитать руководство, чтобы убедиться, что оно работает. – quickshiftin

+0

@ DanielBeauyat [документация] (http://php.net/ob_get_clean) иллюстрирует этот точный пример. RTFM! – quickshiftin

+0

@ DanielBeauyat Вы явно не знаете, как работает 'ob_start'. Вы можете использовать его в любом месте в коде. Он запускает другую точку в стеке выходного буфера. Опять [RTFM !!] (http://php.net/manual/en/function.ob-start.php) – quickshiftin

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