Php 输出缓冲仍在输出数据

Php 输出缓冲仍在输出数据,php,output-buffering,Php,Output Buffering,我有一个足够简单的代码块: ob_start(); include('api/emails/pmEmail.php'); $email = ob_get_contents(); ob_end_clean(); 据我所知,这应该在我的文件中获取数据,解析它,因为它是一个include,将它存储到$email,然后结束,所有这些都不需要输出到浏览器 不幸的是,它似乎不起作用。顾名思义,该文件包含一个电子邮件模板、输出,并且由于它是API的一部分,因此会中断返回。我检查了ini文件,输出缓冲设置为4

我有一个足够简单的代码块:

ob_start();
include('api/emails/pmEmail.php');
$email = ob_get_contents();
ob_end_clean();
据我所知,这应该在我的文件中获取数据,解析它,因为它是一个include,将它存储到$email,然后结束,所有这些都不需要输出到浏览器


不幸的是,它似乎不起作用。顾名思义,该文件包含一个电子邮件模板、输出,并且由于它是API的一部分,因此会中断返回。我检查了ini文件,输出缓冲设置为4096,这似乎是一个合理的值。我不知道我是否需要其他设置,或者我做错了什么。这个例子在网络上存在很多次,我不知道这是因为我正在输出完整的HTML文件还是其他东西。

其他人向我指出:


我的include脚本中出现错误,无法获取输出。把这些放在一起帮助我找到了bug并解决了它。

最终目标是什么?你想做什么?请尝试注释include语句,而不是放一个简单的回音。然后呢?输出将被捕获,还是仍然发送到浏览器?目标是将电子邮件内容(解析后)转换为变量,以便使用PHP mail函数发送。当使用回音时,我得不到输出。很明显,这是因为包含,但是这个例子已经遍布网络,所以我不确定我是否把事情搞砸了。检查包含的文件中是否有错误。尝试包含一个只做一些琐碎事情的脚本,比如回显一些东西。这感觉应该通过使用模板引擎(例如,Twig)和SwiftMailer来更好地解决。这两者结合在一起,使您能够以灵活、可预测的方式通过电子邮件发送数据。