2012-06-19 81 views
2

我有兩個文件我如何知道是否require_once?

1 - 的index.php 2 - main.php

的index.php調用main.php通過<?php require_once("../../includes/main.php"); ?>

如何從知道main.php執行時,

if if 的index.php電話給他或同一用戶執行它的獨立?
我應該問主PHP裏面是什麼,如果是require_once繼續運行程序? THX

+6

如果你擔心文件被遠程用戶直接調用,然後保留文件的Web文檔根目錄之外。無法遠程調用您無法訪問的文件。 –

回答

1

另一種方法是使用​​- 「主」的文件,其中包括其他的人會一直顯示在頂部=是返回數組的第0個元素:

if (get_included_files()[0] !== __FILE__) { 
    // ..included 
} else { 
    // ..not included 
} 

這在大多數情況下工作。

+0

**做得好... ** – yossi

2

我已經做到了之前通過設置變量之前的包括,然後該幹嘛包括。例如:

$included_main_from = 'index.php'; 
require ('../../includes/main.php'); 

然後在main.php中檢查該變量以及它的值是什麼。

2

很多框架在index.php中定義了一個常量,在main.php中,您可以使用defined()來檢查它是否存在。你可以得到與調試回溯功能的詳細信息,但你不應該/使用,在生產檢查。

相關問題