2011-12-10 64 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

非常明智的答案。 –