如何使一个包含的PHP文件变量

问题描述:

我想做一个PHP文件我有我正在建设的变量的一部分。如何使一个包含的PHP文件变量

$print = 'something'; 
$print .= include('register_form.php'); 

print $print; 

然而,这是行不通的。 register_form.php将不会包含在$ print var中,并且会在打印输出开始之前回显出来。

有没有办法做到这一点?

我知道我可以进入register_form.php并使其成为register_form()的函数,然后返回它的输出,但是,由于我已经构造了这个方法(并且我有点新鲜)如果我只能做上述尝试,这会造成更多的麻烦。

感谢您的指点!

您可以通过output buffering来代替。

ob_start(); 
include('register_form.php'); 
$print = ob_get_contents(); 
ob_end_clean(); 


echo $print; 
+0

用这种方法,我会删除了把一切我在$打印可变打印出需要什么? – willdanceforfun 2011-01-13 23:55:07

+0

是的,输出缓冲将收集所有的回声/打印的东西到一个缓冲区,你可以用`ob_get_contents()`获取它的内容,并用`ob_end_clean()`` – 2011-01-13 23:56:41

输出缓冲:

ob_start(); 
include('register_form.php'); 
$output = ob_get_clean(); 

echo $output; 

另一种选择是的file_get_contents($文件名);

将整个文件读入一个字符串。

file_get_contents

--edit

不好意思,刚才看了你的问题多一点正确。如果你在你的php表单中有echo语句,输出buffing是唯一的方法。

更简洁的方法是让输出表单函数返回HTML,以便您可以在输出时选择。这可能是一个小小的头痛,但将来会更容易。

包含的文件可以有返回值。通过将这与输出缓冲相结合,您可以实现您想要的。

register_form.php

ob_start(); 
// content 
return ob_get_clean(); 

那么你的代码将工作:

$print = 'something'; 
$print .= include 'register_form.php' ; 
echo $print;