2013-03-20 107 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();