2013-03-20 86 views
0

我在pageA.php用下面的代码PHP:如何识别“包括”

if (DOWNLOAD_ENABLED == 'true') include 'pageB.php'; 

,才有可能知道里面pageB.php是pageA.php包括它的?我需要根据包含它的页面在pageB.php中执行某些操作。

+0

require和require_once。如果文件没有加载,它将失败 – Drewdin 2013-03-20 13:08:36

+0

我的问题是如何知道pageB.php内部它被pageA.php调用,是否有一个函数呢? – Kokas 2013-03-20 13:10:29

+1

你也可以查看'$ _SERVER ['PHP_SELF'];' – 2013-03-20 13:14:41

回答

0

在pageA的声明的任何变量将可以访问在页面B,这是不是很好的做法,你应该使用面向对象或至少在这个功能,但是如果你绝对需要你可以这样做:

// on pageA.php 
if (DOWNLOAD_ENABLED == 'true') { 
    $includedFrom = "pageA"; 
    include 'pageB.php'; 
} 

// on pageB.php 
switch($includedFrom) { 
    case "pageA": 
    // do stuff 
    break; 
} 
+0

谢谢,现在修好了。 – cernunnos 2013-03-20 13:12:12

0

最简单的方法是将它保存在var中。

$my_page = 'pageA.php'; 

if (DOWNLOAD_ENABLED == 'true') include 'pageB.php'; 

您可以访问pageB.php$my_page正常。

0

像这样的东西会工作:

pageA.php

define('AUTHORISED_TO_INCLUDE', 1); 
if (DOWNLOAD_ENABLED == 'true') include 'pageB.php'; 

pageB.php

if(!defined('AUTHORISED_TO_INCLUDE')) // Do something, e.g. die();