在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: test@test.comrn".
                     'X-Mailer: PHP/' . phpversion().
                     'MIME-Version: 1.0' . "rn".
                     'Content-type: text/html; charset=utf-8' . "rn";
     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="...">等是一个好的解决方案。

您对输出缓冲感到困惑。您在页面开头打印的HTML/CSS不会在任何地方捕获,也不会属于$mail_text。仅仅因为您使用USIGN输出缓冲并不会使该缓冲区神奇地出现在变量中。您至少需要$mail_text .= ob_get_clean()或其他东西来提取缓冲区的内容并将其放入变量中。

相关内容

  • 没有找到相关文章

最新更新