我正在使用 PHP 包含函数将内容添加到发送的电子邮件中。问题是我也不想回显文件,我只想将它包含为 $message。
什么相当于包含返回没有回声的字符串。
$message = include('email/head.php');
使用输出缓冲。
ob_start();
include('email/head.php');
$message = ob_get_contents();
ob_end_clean();
的目的include
是将包含的文件评估为 PHP 文件。这意味着<?php ?>
标签之外的任何内容都被视为输出,并将其发送到浏览器。如果要获取文件的内容,则需要使用file_get_contents
或fopen
/来读取它fread
。
如果要将包含的文件评估为可执行 PHP 并捕获输出,则应使用输出缓冲。
file_get_contents() 会将完整的文件内容放入一个变量中。
<?php
// grabs your file contents
$email_head = file_get_contents('email/head.php');
// do whatever you want with the variable
echo $email_head ;
?>
请注意它不会将 head.php 作为php
文件进行预处理。因此file_get_contents()
更适合静态文本文件(模板)。