如何使一个包含的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;
答
输出缓冲:
ob_start();
include('register_form.php');
$output = ob_get_clean();
echo $output;
答
另一种选择是的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;
用这种方法,我会删除了把一切我在$打印可变打印出需要什么? – willdanceforfun 2011-01-13 23:55:07
是的,输出缓冲将收集所有的回声/打印的东西到一个缓冲区,你可以用`ob_get_contents()`获取它的内容,并用`ob_end_clean()`` – 2011-01-13 23:56:41