2012-06-19 80 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()来检查它是否存在。你可以得到与调试回溯功能的详细信息,但你不应该/使用,在生产检查。