我想创建一个php文件,我有一个变量的一部分,我正在构建。
即
$print = 'something';
$print .= include('register_form.php');
print $print;
然而,这不起作用。 register_form.php将不会包含在$ print var中,并且会在打印开始之前回显出来。
有没有办法实现这个目标?
我知道我可以进入register_form.php并使其成为像register_form()这样的函数并返回它的输出,但是,由于我构造它的方式(我有点像新手)如果我只能做上述尝试,那会产生更多麻烦。
感谢您的任何指示!
答案 0 :(得分:7)
您可以通过output buffering来完成此操作。
ob_start();
include('register_form.php');
$print = ob_get_contents();
ob_end_clean();
echo $print;
答案 1 :(得分:1)
另一个选项是file_get_contents($ filename);
将整个文件读入字符串。
- 编辑
抱歉,请更正确地阅读您的问题。如果你的php表单中有echo语句,输出缓冲是唯一的方法。
更简洁的方法是让输出表单函数返回HTML,以便您可以选择何时输出。这可能是一个小问题,但将来会更容易。
答案 2 :(得分:0)
输出缓冲:
ob_start();
include('register_form.php');
$output = ob_get_clean();
echo $output;
答案 3 :(得分:0)
包含的文件可以包含返回值。通过将其与输出缓冲相结合,您可以实现您想要的效果。
register_form.php
ob_start();
// content
return ob_get_clean();
然后您的代码将起作用:
$print = 'something';
$print .= include 'register_form.php' ;
echo $print;