Моя страница имеет следующую структуру:Нужна таблица стилей перед ob_endflush() и перед заголовком (местоположение:), как?
<?php
session_start();
ob_start();
?>
HTML HEADER
links to stylesheets global.css and mail.css
<?php
function email(){
/* using the stylesheets global.css and mail.css */
$text = '<div class="test">
<p id="par">...
<span id="write" class="text">...</span>
</p>
</div>';
return $text;
}
?>
/* some text and html stuff */
<?php
if(isset(...)){
/* php form validation */
/* after validating I send an email to the user where I call
the function email() which use the stylesheets. */
$mail_text = 'Dear .....';
$mail_text .= email();
$mail_headers = "From: [email protected]\r\n".
'X-Mailer: PHP/' . phpversion().
'MIME-Version: 1.0' . "\r\n".
'Content-type: text/html; charset=utf-8' . "\r\n";
if(mail(..., ..., $mail_text, $mail_headers)){
header('location: newlocation.php');
}
?>
/* HTML FORMS and text and .... */
<?php
ob_end_flush();
?>
Электронная почта отправляется с текстом, происходящим от функции электронной почты(), но без форматирования вызвать CSS являются «распечатан» только после того, как ob_end_flush() в нижней части страницы.
Как я могу это решить? Существует много классов и стилей внутри электронной почты(), поэтому писать каждый раз <div style="...">
и т. Д. Не является хорошим решением.
$ mail_text. = Ob_get_contents(); вызовите это, прежде чем вы вызовете ob_get_clean(); – Schien
Это то, что я написал, не так ли? «но без форматирования CSS« распечатываются »только после ob_end_flush() внизу страницы». – Perocat
Да, потому что ob_end_flush() выдает выходные данные клиенту. этот вывод не сохраняется в переменной. В вашем коде есть два пути вывода: электронная почта и браузер клиента. Они никоим образом не связаны, потому что вы не сделали никакого кода, чтобы связать их. –