如何在PHP中将文件的内容分配给变量

时间:2012-06-27 15:51:23

标签: php include

我有一个包含HTML标记的文档文件。我想将整个文件的内容分配给PHP变量。

我有这行代码:

$body = include('email_template.php');

当我执行var_dump()时,我得到string(1) "'"

是否可以将文件内容分配给变量?

[注意:这样做的原因是我希望将邮件消息的正文段与邮件程序脚本分开 - 有点像模板,因此用户只需修改HTML标记,无需担心用我的邮件脚本。所以我将文件作为整个正文部分包含在mail($to, $subject, $body, $headers, $return_path);

感谢。

7 个答案:

答案 0 :(得分:22)

如果需要执行PHP代码,则确实需要使用include。但是,include不会返回文件的输出;它将被发送到浏览器。您需要使用名为output buffering的PHP功能:它捕获脚本发送的所有输出。然后,您可以访问和使用此数据:

ob_start();                      // start capturing output
include('email_template.php');   // execute the file
$content = ob_get_contents();    // get the contents from the buffer
ob_end_clean();                  // stop buffering and discard contents

答案 1 :(得分:11)

您应该使用file_get_contents()

$body1 = file_get_contents('email_template.php');

include在您当前的文件中包含并执行email_template.php,并将include()的返回值存储到$body1

如果你需要在文件中执行PHP代码,你可以使用output control

ob_start();
include 'email_template.php';
$body1 = ob_get_clean();

答案 2 :(得分:2)

file_get_contents()

$file = file_get_contents('email_template.php');

或者,如果你疯了

ob_start();
include('email_template.php');
$file = ob_end_flush();

答案 3 :(得分:1)

正如其他人发布的那样,如果不需要以任何方式执行该文件,请使用file_get_contents

或者,您可以使include返回带有return语句的输出。

如果你的include使用echo [ed:或离开PHP解析模式]语句进行处理和输出,你也可以缓冲输出。

ob_start();
include('email_template.php');
$body1 = ob_get_clean();
TimCooper打败了我。 :P

答案 4 :(得分:0)

尝试使用PHP的file_get_contents()函数。

在此处查看更多内容:http://php.net/manual/en/function.file-get-contents.php

答案 5 :(得分:0)

是的,你可以轻松。

在您要使用变量的文件中放置此

require_once ‘/myfile.php';
if(isset($responseBody)) {
    echo $responseBody;
    unset($responseBody);
}    

在您调用/myfile.php的文件中放置此

$responseBody = 'Hello world, I am a genius';

由于 丹尼尔

答案 6 :(得分:0)

您有两个可选选项

[选项1]

  1. 创建一个名为'email_template.php'的文件
  2. 在文件内添加这样的变量

    $body = '<html>email content here</html>';

  3. 在另一个文件require_once 'email_template.php'

  4. 然后echo $body;

[选项2]

$body = require_once 'email_template.php';