从头开始重新执行PHP(向后移动)?

时间:2012-09-13 13:09:45

标签: php

当我的PHP遇到某个条件时,我想要在它上面执行某些操作(标题)。我已经阅读了所有关于ob_start的内容,但通过测试很多次(我的意思是几天),老实说,我没有看到任何区别。所以现在我想知道我是否可以将标题保留在顶部并稍后激活它?

if($x == 1)
    header("Location: something"); exit;

... // echo's, HTML, etc
$x = 1;
restart_php();

可能不是,但值得一试。也许有人确实知道一种技巧。

2 个答案:

答案 0 :(得分:1)

如果你真的想稍后指定标题(并且它是变量的)来提供排序的救助 - 重定向......试试这个尺寸;

<?php
function restart_php($x){
    if($x == 1)  
        ob_end_clean();   # throw everything away
        header("Location: something"); 
        exit;  
    }else{
        $page = ob_get_contents();
        ob_end_clean();
        echo $page;
    }
}
ob_start();  # everything after here goes into buffer so header is clean

... // echo's, HTML, etc  
$x = 1;  # to previous note on this, X is always equal to 1?
restart_php($x);  # which clears the buffer and either shows header or echo's the contents
?> 

答案 1 :(得分:0)

不知道,如果我理解你的问题吧...在php(实际上)中没有办法使用GO TO(就像基本的那样)....

更新:自php 5.3.0开始实施goto功能

你可以做什么,例如。在函数顶部写下你的条件

<?php
 function shutdown() {
   global $x;
   if($x==1) {
      header("location ...");
   } 
   //.....
 }
 // and then call the register_shutdown_function
 register_shutdown_function('shutdown');
 ?>

关于此功能的更多信息    register_shutdown_function()