2012-04-27 116 views
2

PHP是不是我選擇的語言,他這樣說我記得看到一個PHP if使用這樣的事情:PHP,包括HTML

<?php 
    if (blah) { 
?> 
     // loads of html and js that doesn't need to be escaped since we closed 
     // the php already with "?>" 
<?php 
    } 
?> 

或像這樣的東西。我不知道它叫什麼和谷歌搜索如果沒有幫助。

什麼是這種技術叫什麼,它的正確語法是什麼?

+2

進出php標籤? – 2012-04-27 12:19:05

+1

它的正確語法如上。我稱這種技術「可怕」。如果您必須這樣做,請考慮創建單獨的.html文件並將其包含在內,混合使用PHP和HTML會產生不可讀的亂七八糟的白色間隔輸出。 – DaveRandom 2012-04-27 12:19:57

回答

3

它可以作爲你的問題貼,或使用這樣的(我喜歡):

這是最常見的,你不要」模板做T的任何邏輯,只是簡單的ifloops,如:

<?php foreach($something as $test): ?> 
    <p><?php echo $test; ?></p> 
<?php endforeach; ?> 
0

你的意思是這樣的嗎?

<?php include("filename.html"); ?> 

,或者你可以只寫HTML代碼,如果你不是PHP標籤

0
<?php 
if(blah){ 
include('htmlfile.html'); 
} 
?> 

htmlfile.html 

<!-- Your HTML Code --> 
0

這就是所謂的嵌入HTML(反之亦然)PHP,有一個替代語法,使其看上去稍微好一些:

<?php if (condition) : ?> 
HTML HTML HTML 
<?php endIf; ?> 

使用include(file.html);通常是一個更好的方式去雖然。

1

最徹底的方法是這樣的

<?php if ($test) : ?> 
    <p>Some HTML</p> 
<?php endif; ?> 
1

這句法是正確的。還有一個替代語法,可以提高代碼的可讀性,如果你有在地方混合PHP和HTML:

<?php if(blah): ?> 
    <!-- my HTML --> 
<?php endif; ?> 

我與那些誰,使毯語句不混合PHP和HTML不同意。我使用模板系統儘可能地將應用程序邏輯與HTML分開,但仍有一些地方需要在模板文件中使用if語句或for循環。

1

正如另一位用戶指出的那樣,它被稱爲Escaping from HTML,它只是在PHP if語句中回顯/打印每一行HTML的替代方案。

話雖這麼說,你正在使用的語法就好了:

// Option 1 
<?php if ($variable) { ?> 
<!-- HTML stuff here --> 
<?php } ?> 

或者其他方式:

// Option 2 
<?php 
if ($variable) { 
    echo '<div>'; 
    echo '<span>Totally putting HTML here</span>'; 
    echo '</div>'; 
} 
?> 

或者,第三方式user1266222指出:

// Option 3 
<?php if ($variable) { include 'path/to/htmlfile/filename.html'; } ?> 

其中只包含HTML文件。

該方法取決於你想要做什麼,所有的使用情況都是可行的,但對於只有非常小的HTML片段,我會選擇2.對於整個HTML文件(甚至只是部分),我會去選項3.如果懶的和你們有一個較長的一段HTML的,有選擇1

1

在手冊中它被稱爲Escaping from HTML
當然,你可以使用任何PHP語句有了它,不僅if

正確的語法是您在代碼片段中使用的語法:使用?>關閉PHP模式並使用<?php將其打開再次,他們之間的文本直接進入瀏覽器

這種技術的使用必須限於基於PHP的模板。爲此目的,非常有用