PHP在某些条件下跳过文件

时间:2011-04-14 06:12:26

标签: php

以下是我的情况示例:

<?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之后输出更多代码。

有任何帮助吗?

4 个答案:

答案 0 :(得分:6)

  1. 将代码包含在条件块中。
  2. 如果做1.给出一个太复杂的结构考虑使用标志。 $doPrintSectionA = false;并在打印某个部分之前检查该标志。
  3. 如果你有PHP&gt; = 5.3,你可以使用goto语句。
  4. 请注意,打开和关闭PHP标记不会影响控件结构。例:

    <?php
    if(rand(0,1)){
    ?>
    
    <b>Hello World!</b>
    
    <?php
    }
    ?>
    

    最后警告:

    enter image description here

答案 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 
?>