使用include()设置$ variable的内容

时间:2012-01-04 10:53:36

标签: php html

我正在尝试通过PHP的email()函数发送凭证,我使用include()作为消息内容引用外部.php文件。下面是代码:

$message = '<?php include ("/fullpath/inc/voucher.php"); ?>';

这不起作用,因为我将它声明为文本字符串,但如果我不这样做,它将打印出内容而不是将其作为变量的内容。有什么想法吗?

7 个答案:

答案 0 :(得分:3)

您可以使用ob_buffer,试试这个:

<?php
   ob_start();  // start buffer
   include("file.php");  // read in buffer
   $var=ob_get_contents();  // get buffer content
   ob_end_clean();  // delete buffer content
   echo $var;  // use $var
?>

来自http://www.webmaster-eye.de/include-in-Variable-umleiten.210.artikel.html(德语)

的示例

答案 1 :(得分:3)

在这篇文章中,将根据具体情况描述两种解决方案。


voucher.php返回值

如果voucher.php中有return语句,您可以安全地使用include来获取此返回值。

见下面的例子:

<强> voucher.php

<?php

$contents = "hello world!";

...

return $contents;

?>

...

$message = include ("/fullpath/inc/voucher.php");

voucher.php正在打印我想要存储在变量

中的数据

如果voucher.php正在打印您要存储在变量中的数据,则可以使用php的output buffering函数存储打印的数据,然后将其分配给$message。< / p>

ob_start ();
  include ("/fullpath/inc/voucher.php");
  $message = ob_get_contents ();
ob_end   ();

答案 2 :(得分:1)

ob_start();
include ("/fullpath/inc/voucher.php");
$message = ob_get_clean();

然而,在大多数情况下,输出缓冲被认为是不好的做法,不建议使用

与你的情况一样,你最好在voucher.php中声明一个以字符串形式返回消息的函数。所以所有代码都可以这么简单:$message = get_voucher();

答案 3 :(得分:1)

我遇到了同样的问题,这里有解决问题的功能。它使用Tobiask答案

function call_plugin($target_) { // $target_ is the path to the .PHP file
        ob_start();  // start buffer
        include($target_);  // read in buffer
        $get_content = ob_get_contents();  // get buffer content
        ob_end_clean();
        return $get_content;
    }

答案 4 :(得分:0)

$message = include '/fullpath/inc/voucher.php';

并在/fullpath/inc/voucher.php

// create $string;
return $string;

答案 5 :(得分:0)

您想使用readfile()功能而不是包含。 请参阅:http://en.php.net/manual/en/function.readfile.php

如果你想得到解析voucher.php的PHP的= results =,一种方法是确保你将voucher.php放在一个可到达的URL上,然后调用它:

$message = file_get_contents("http://host.domain.com/blabla/voucher.php");

这会将解析后的voucher.php的内容/输出插入到变量$ message中。

如果你无法公开地访问voucher.php,你必须重写它以使用return()函数输出最后的字符串,或者在voucher.php中编写一个函数,该函数在调用后输出你想要的字符串你包括()它并从这个主PHP脚本中调用该函数。

答案 6 :(得分:-1)

$message=file_get_contents("/fullpath/inc/voucher.php");