2010-11-10 73 views
0

像这样的事情是在一个名为“header.php文件”,这在我的网站的所有文件包括文件:我想一个PHP包括被打断

switch (str_replace('/folder_name/','',$_SERVER['REQUEST_URI'])){ 
    case 'index.php': 
    $page_title='main page'; 
    break; 
    case 'page1.php': 
    $page_title='page 1 is here'; 
    break; 
    case 'page2.php': 
    $page_title='this is page 2'; 
    break; 
} 

而且它其次是一些HTML这是通用于所有页数:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
etc... 

我可以这样做吗,对于交换机中的一种情况,包括在那里停止?我在问是否有办法打断include中的包含。例如,它可能看起来像:

case 'page3.php': 
$page_title='the title for page 3'; 
STOP_THE_INCLUDE 
break; 

这可能吗?

回答

1

当您退出交换机时,使用IF来避免其余的包含?像这样:

$stopInclude = false; 
switch (str_replace('/folder_name/','',$_SERVER['REQUEST_URI'])){ 
    case 'index.php': 
    $page_title='main page'; 
    break; 
    case 'page1.php': 
    $page_title='page 1 is here'; 
    break; 
    case 'page2.php': 
    $page_title='this is page 2'; 
    break; 
    case 'page3.php': 
    $page_title='the title for page 3'; 
    $stopInclude = true; 
    break; 
} 
if (!$stopInclude) { 
    //whole rest of the include 
} 
4

是的,你可以简单地在return;里面包含。

+0

虽然我同意你的解决方案,但我不得不说,从一个中断一个包含听起来像*糟糕的应用程序体系结构。 (再说一次,这与你的回答没有任何关系,+1) – karim79 2010-11-10 00:48:16

+0

是的,我甚至不认为我会保持这种状态,我只是好奇,如果我愿意,我会怎么做。 – 2010-11-10 00:52:31