gpt4 book ai didi

php - 在 ob_end_flush() 之前和标题之前需要样式表(位置 : ), 如何?

转载 作者:行者123 更新时间:2023-11-28 11:28:41 25 4
gpt4 key购买 nike

我的页面结构如下:

<?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.com\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();
?>

发送的电子邮件带有来自 email() 函数的文本,但没有格式化,因为 CSS 仅在页面底部的 ob_end_flush() 之后“打印出来”。

我该如何解决? email()里面有很多类和样式,所以每次都要写<div style="...">等等都不是一个好的解决方案。

最佳答案

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

关于php - 在 ob_end_flush() 之前和标题之前需要样式表(位置 : ), 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21249141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com