http://tinypic.com/r/2mn0pph/8
当我这样做时会发生这种情况
<?php
require('page.inc');
$homepage = new Page();
$homepage->content = include 'project.php';
$homepage->Display();
?>
但如果我这样做:
<?php
require('page.inc');
$homepage = new Page();
$homepage->content = "Hello, stackoverflow!";
$homepage->Display();
?>
它完成了这里的意图
http://tinypic.com/r/1214vbt/8
我应该对include语句做些什么特别的事情来获取行之间的所有内容吗?
答案 0 :(得分:1)
include语句包含并评估指定的文件。
包括不会返回它输出的文字:
处理返回:include失败时返回FALSE并发出警告。成功包含,除非被包含文件覆盖,否则返回1.可以在包含文件中执行return语句,以终止该文件中的处理并返回到调用它的脚本。
这就是你想要的:
<?php
require('page.inc');
$homepage = new Page();
$homepage->content = file_get_contents('project.html');
$homepage->Display();
?>
来自PHP documentation
file_get_contents()以字符串
返回文件
正如@lxg提到的那样:
&#34;我认为project.php包含要执行的PHP代码。在这种情况下,file_get_contents(&#39; project.php&#39;);会是一个坏主意。&#34;
答案 1 :(得分:1)
使用output buffering来捕获生成的HTML:
<?php
require('page.inc');
$homepage = new Page();
ob_start();
require 'project.php';
$homepage->content = ob_get_clean();
$homepage->Display();
?>
这样,PHP就会被执行,但浏览器没有输出。相反,您将在$homepage->content
中捕获缓冲的内容。