2013-03-01 181 views
0

我使用PHP通過查詢傳遞使頁面更具動態性但是我有一大塊HTML代碼需要內部有動態內容但我不知道如何去這樣做,沒有打印每聲明:PHP塊中的大塊HTML代碼

一個在HTML部分:

<div class="review"> 
<p> 
<img src="http://www.cs.aub.edu.lb/hsafa/cmps278/hw2/rotten.gif" alt="Rotten" /> 
<q>Expect no intelligence or subtlety here, but if you're willing to put up with the  sheer ridiculousness of it all, you might enjoy wallowing in Bekmambetov's shameless exhibition of narrative lunacy and technical fireworks in this movie.</q> 
</p> 
</div> 
<div class="personal"> 
<p> 
<img src="http://www.cs.aub.edu.lb/hsafa/cmps278/hw2/critic.gif" alt="Critic" /> 
Frank Swietek <br /> 
<span class="italic">One Guy's Opinion</span> 
</p> 
</div> 

上面的代碼是一個單一的審查但有可能是和我已經服用的次數任意數量的評論,但我我也在改變所有評論的形象,報價和文字。 有沒有包含所有標籤而不打印全部標籤的方法?

+3

將其轉換爲模板。 – jeroen 2013-03-01 16:47:01

+0

http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc – j08691 2013-03-01 16:48:09

回答

0

你應該只使用PHP來打印您的動態內容

<img src="<?php echo $image_url; ?>" alt="<?php echo $image_alt; ?>" />

0

您可以在任何時候再次關閉PHP並啓動它

<?php 
$string = "hi"; 
?> 
<p>Lot's of HTML</p> 
<?php 
echo $string; 
?> 
1

常規的方法是「關閉PHP的標籤」,然後在HTML後重新打開:

// php code here 
?><html code goes here><?php 
// php code here 

然而,還有其他一些方法。一個是使用include。

// php code here 
include('template.file.php'); 
// php code here 

和你的HTML代碼裏面,你使用有這樣的事情:

<htmltag><?= $php_value ?></htmltag> 

你甚至可以使用包括函數內。

或者,您可以使用像Handlebars,Moustache或Twig這樣的模板系統。或者你可以繼續構建大字符串,這就是我所做的。我設置了模板,將它們與數據合併以生成字符串,然後發出字符串。我使用模板系統獲得的主要優點是我可以保存字符串以便在最後發出它們,因此在發送輸出之前能夠更改HTTP標頭。如果我使用include()或代碼塊,代碼立即發出,並且我無法修改HTTP標頭值。

此外,通過構建字符串,我可以將它們保存到文件並使用這些預先計算的塊來提高網站的速度。

+0

關閉標籤'?>',然後重新打開<?php'也可以在功能上。 – 2013-06-16 23:52:07