2011-12-10 66 views
1

截至目前,我使用include的方式是为其他页面添加页眉,页脚和一些内容。使用更好的包括页面?

这导致更多的包括然后我真的想要,因为我需要添加更多内容的包括。

例如:

<!DOCTYPE html> 
<?php include('header.php'); ?> 
<body> 

<?php include('body-top.php'); 
    custom html 
</?php include('footer.php'); 
</body> 

这将是很好,如果我可以添加变量包括和在页面上我想包括展示。

我不擅长PHP,所以有更好的方式使用包括?

+0

这些变量是什么,为什么你需要它们?你可以说得更详细点吗?在PHP中,您始终可以使用变量,只需添加它们即可。你特别的问题是什么? –

回答

1

这可以很容易做到:

的index.php

$title = 'Hello World!'; 
include 'content.php'; 

content.php

<!DOCTYPE html> 
<html> 
<head> 
<title><?php echo $title; ?></title> 
</head> 
<body></body> 
</html> 

这种方法的问题在于,您很快会遇到问题,以便跟踪哪些地方出现了问题,因此使用其他答案中建议的函数可能是一个好主意。但是,对于小项目来说,它足够好。

+0

完全相反,使用函数会在同一个模板中使事物变得模糊一切都会变得清晰一致 –

+0

变量如何查找包含多个外部js/css? – nowayyy

1

听起来像Smarty

它看起来像这样

<?php 
require 'Smarty/libs/Smarty.class.php'; 

$smarty = new Smarty; 

$smarty->assign('title','Hello World'); 
$smarty->assign('hello','Hello World, this is my first Smarty!'); 
$smarty->display('test.tpl'); 
?> 

test.tpl

<html> 
    <head> 
    <title>{$title}</title> 
    </head> 
    <body> 
    {$hello} 
    </body> 
</html> 

甚至更​​好的方法,使用一些PHP MVC框架的工作,这将给你更多的东西(不只是模板系统)

+0

你是否认真地建议有人刚刚完成他的第一步应该使用MVC框架? – middus

+0

我没有看到关于“第一步”的一行,另一方面,它可以对未来有所建议,他现在不需要学习,smarty也不难,即使对于初学者我也不会这么想 –

0

你可以把你r将文件包含到函数中。 PHP有一个巧妙的方法,只有当代码的一部分到达时,才会执行花括号之间的任何内容(即{})。这包括PHP代码之外的HTML代码。

这可能是我们的'header.php'文件,我们将当前代码封装在一个函数中。

<?php function doHeader($title) { ?> 
<html> 
<head> 
<title><?php echo $title; ?></title> 
</head> 
<?php } ?> 

然后我们为它做一个测试仪。无论我们的测试者/呼叫者选择通过$title在我们的输出中显示。

<?php 
// All included here 
include_once('header.php'); 
?><!DOCTYPE html> 
<?php doHeader('My page title'); ?> 
<body></body> 
</html> 

这将产生输出,

<!DOCTYPE html> 
<html> 
<head> 
<title>My page title</title> 
</head> 
<body></body> 
</html> 
+0

为什么这会被投票? – FakeRainBrigand

1

你包括已经很少,没有必要对其进行优化。

也不要注重以人暗示Smarty的或MVC的,因为这将增加包括显着的数量(以换取其他利益,当然) -

+0

非常明智的答案。 –