以下是我的情况示例:
<?php
if(//condition)
{
//start output buffer
}
else
{
//skip through file until POINT A
}
?>
<!-- some nice html, no php here -->
<?php
//close output buffer & write it to a file
//POINT A << SKIP TO HERE
?>
基本上,我将PHP代码块之后的HTML代码加载到输出缓冲区中。我的条件检查输出缓冲区写入的文件是否存在。如果它存在,我只想跳过HTML和输出缓冲区写入,并从POINT A
开始。我会做一个exit;
但我希望在POINT A
之后输出更多代码。
有任何帮助吗?
答案 0 :(得分:6)
$doPrintSectionA = false;
并在打印某个部分之前检查该标志。goto
语句。 请注意,打开和关闭PHP标记不会影响控件结构。例:
<?php
if(rand(0,1)){
?>
<b>Hello World!</b>
<?php
}
?>
最后警告:
答案 1 :(得分:1)
<?php
if(//condition)
{
//start output buffer
}
else
{
//skip through file until POINT A
?>
<!-- some nice html, no php here -->
<?php
//close output buffer & write it to a file
<?php } ?>
//POINT A << SKIP TO HERE
?>
答案 2 :(得分:1)
if (/* condition */) {
//start output buffer
<!-- some nice html, no php here -->
//close output buffer & write it to a file
}
您可能还希望将代码组织成函数,可能是单独的文件,甚至可能是类。
实际上,如果您所做的只是将静态HTML 输出到文件中,您可以跳过整个输出缓冲区文件编写过程,只需创建一个单独的静态HTML文件,停。如果您想在此页面上显示,也可以使用include 'file.html'
。
答案 3 :(得分:1)
如果你使用PHP 5.3,你当然可以在脚本中“转到:” - http://us.php.net/manual/en/control-structures.goto.php
尽管使用goto和big if语句,你最终会得到一些非常粗糙的代码。这是我建议的开始。
<?php
if(//condition)
{
//start output buffer
include "content/page.html";
//close output buffer & write it to a file
}
//POINT A
?>