【问题标题】:PHP Email entire page without OBPHP电子邮件整个页面没有OB
【发布时间】:2011-09-20 09:24:19
【问题描述】:

我有一个页面兼作我们网站上页面的打印页面和电子邮件版本。用户无法找到该页面,但会加载到 iframe 中,然后根据用户按下的按钮通过 GET 加载它,打印或发送电子邮件。 IE。 ?purpose=print ?purpose=email

现在 print 函数触发 JS window.pint() 而 email 函数使用 PHP html 邮件。为了获取整个页面的内容,我使用了 OB 函数

ob_end_start();
// page content
ob_get_contents();
ob_end_clean();

虽然这让我的打印功能和页面上的其他 JS 感到害怕。有没有其他方法可以获取页面内容并将其传递给电子邮件的$message 参数?

任何想法,

太棒了

【问题讨论】:

  • JS函数有什么问题?您的打印功能永远不会执行。

标签: php javascript email


【解决方案1】:

您的意思是使用 OB 功能会影响页面的正常显示?

你有没有尝试过这样的事情:

ob_end_start();
// page content
if(!empty($_GET['purpose']) && $_GET['purpose'] == "email") {
    $message = ob_get_contents();
    ob_end_clean();
    // your code for sending the $message
} else {
    ob_end_flush();
}

如果purpose 未设置或不是“电子邮件”,则正常输出页面。如果您想发送电子邮件显示内容,那么只需将ob_end_clean 替换为ob_end_flush(在这种情况下您不需要 if 条件)。

【讨论】:

  • 是的,它没有正确呈现页面。但问题是 EMAIL 和 PRINT 两个函数都需要从 iframe 触发一些 javascript 到父文档,并且也不能正确呈现
  • 完成。我已将脚本移至 OB_START 之前的页面顶部,并附加了窗口加载功能。
【解决方案2】:

不要使用 JS 来渲染这个页面。

这将是最简单的解决方案。

我认为这里没有问题。你需要内容,你显然有内容。那就发吧

【讨论】:

    【解决方案3】:

    是的,使用curl(),保存页面内容(返回正文)并通过邮件发送。这应该比 ob_* 函数更好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-29
      • 2015-07-10
      • 2021-12-24
      • 1970-01-01
      • 2010-11-25
      • 2012-03-11
      • 1970-01-01
      相关资源
      最近更新 更多