2013-10-26 85 views
0

正确的,我想要做的是创建一个像下面的图像布局: - Layout 此布局将用于超过50多页,所以我想了解创建这个最佳方式。我已经给出了它,但我似乎无法弄清楚这应该如何工作。如何正确创建这种类型的布局(包含PHP)

我一直在努力得到它的,像这样的工作:

的header.php - 保存侧杆。侧栏1 float: left;和侧栏2 float: right,这些都在一个容器中,以将它们固定就位。

index.php - 保存内容(如包含用户统计信息的表格)(在HTML表格中)。这是包装在一个div(主要内容)。在页面顶部I include("header.php");。这确实有效,但是当页面顶部的PHP使用echo时,该值不会在div内。

基本上我创建的布局是在这里: - DEMO HERE

这就是我想要的布局看,但现在这里的问题。我使用PHP来计算的东西e.g:

if($userhp <= 0) { 
    echo "You are dead"; 
} 

下面这段代码位于页面的顶部,这意味着它会回声出DIV(为主要内容)之前被打开了。这个代码应该在div中吗?

这个例子是在一个更大的if声明中,所以我不得不把它放在一边,其中一些块可以是100多行代码。

所以我不知道如何去做这件事,在正确的方向推动会很好。

如果您需要了解更多信息或者我没有做出足够清楚的话,请留下评论,我会尽快回复您。

回答

2

看看output buffering。您可以将您的输出存储在一个变量中,然后在您的div中打印它:

<? 
ob_start(); // Turn on output buffering 
if ($userhp <= 0) { 
    echo "You're dead"; 
} 
... 
$contents = ob_get_clean(); // Store output in $contents 
... 
?> 

<div id="content"><?php echo $contents ?></div> 
+0

稍微查看一下,是否可以安全使用?它会给我带来什么问题(你知道的常见问题) – Ruddy

+0

是的,它可以安全地使用,例如Zend Framework(http://framework.zend.com/)也使用这种技术将页面内容放入布局。没有我能想到的常见问题。如果您忘记关闭输出缓冲(ob_get_clean或on_end_flush等),输出将自动发送到脚本末尾的浏览器,这样您就不会丢失数据(如果脚本由于错误而提前终止) 。 –

+0

唯一的问题可能是所有的输出都存储在内存中,但是当你显示一个非常大的页面(例如使用PHP显示一个10MB大图)时,这只会成为一个问题。对于一个普通的HTML页面,你只能说几kb的最大值。 –