2012-06-25 100 views
1

我创建了一个PHP站点,它有3个页面,即A,B和C.A和B都将首先使用“require_once” 。有没有办法让C页知道这个电话是来自A还是B?我怎样才能得到使用“require_once”页面的网址

$_SERVER['HTTP_REFERER']没有工作。

+0

出于好奇,到底为什么你需要知道什么?你需要知道多少?你只需要区分两者,或者你必须能够准确地指出哪一个? – Wug

+0

在A和B中放置一个标签,如$ tag =“A.php”; – nullpotent

回答

2

a.php只会

$page = 'A'; 
require_once 'C.php'; 

B.php

$page = 'B'; 
require_once 'C.php'; 

C.php

echo 'I was required by'.$page; 
+0

这意味着'$ page'变量需要在所有三个页面上可用。 – Blaster

+0

是的,与require()调用相同 –

+0

只有在文件数很少的情况下,您的解决方案才适用。否则,在每个文件中包含$ page的初始化需要很长时间... – Jocelyn

2

可以在c.php使用debug_backtrace功能
您将得到来电文件和来电线路号码。

$db = debug_backtrace(); 

echo "Calling file: ". $db[0]['file'] . ' line '. $db[0]['line']; 
0

尝试$ _SERVER ['REQUEST_URI']。每php.net,

URI提供整个请求路径(/directory/file.ext?query=string)

+0

谢谢。这是我寻找cuz的方式,我不想在调用页面中添加任何额外的变量。抱歉,我没有足够的声望投票。 – Gary

+0

没关系。你能接受它作为答案吗? – aynber

相关问题