2012-04-27 120 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的模板。为此目的,非常有用