0

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

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

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

可能不会,但值得一试。也许那里有人确实知道一种技术。

4

2 回答 2

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
?> 
于 2012-09-13T13:35:11.723 回答
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()的更多信息

于 2012-09-13T13:19:01.100 回答