【发布时间】:2011-11-28 22:37:25
【问题描述】:
在 PHP 中,
-
$SERVER["PHP_SELF"]给出了被调用 URL 的绝对“路径”部分; -
__FILE__给出被包含文件的绝对本地路径
因此:
/* /MyServer/stuff/include.php */
<?php echo $SERVER["PHP_SELF"] . PHP_EOL; echo __FILE__ . PHP_EOL; ?>
/* /MyServer/index.php */
<?php include("stuff/include.php");
echo $SERVER["PHP_SELF"] . PHP_EOL; echo __FILE__ . PHP_EOL; ?>
当我继续 http://www.example.com/index.php 时,我会得到:
/index.php /MyServer/stuff/include.php /index.php /MyServer/index.php我的问题是:我如何获得“/stuff/include.php”,换句话说,我的包含文件的“http”页面?当然,我可以对其进行硬编码,或者以编程方式推断它,但我想要一种可靠的方式。理想情况下,这是我不知道的一些 PHP 魔法常数。
【问题讨论】:
-
我有点困惑。你到底需要在运行时推断什么?
-
$_SERVER['SCRIPT_NAME']可能是您正在寻找的东西,不确定但请尝试一下,看看它是否返回您需要的东西。如果不是,也许$_SERVER['REQUEST_URI']?另见$_SERVER variables -
要查看您可用的所有信息,请在您的一个页面上执行
print_r($_SERVER);并查看提供的所有“魔法”。