在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/材料/include.php/index . php/MyServer/index . php之前我的问题是:我如何获得"/stuff/include.php",换句话说,"http"页面到我包含的文件?当然,我可以硬编码它,或者通过编程推导它,但我想要一个可靠的方法。理想情况下,这是一个我不知道的PHP神奇常数
硬代码(config-file)变体是最好的选择。没有什么"神奇的常数"可以帮你解决这个问题。
当您查看文档时,有可能提取脚本路径的选项。但是,请注意,这些值依赖于服务器配置/请求,因此您的"可靠方法"可能会适得其反。
try this:
=(美元协议!空($ _SERVER["HTTPS"]),,("HTTPS")$ _SERVER ! = '从' | | $ _SERVER [' SERVER_PORT '] = = 443) ?'https': 'http';
$url = $protocol。$ _SERVER [' HTTP_HOST ']。$ _SERVER [' REQUEST_URI '];
echo $ url;
$arrUrl = parse_url($protocol。$ _SERVER [' HTTP_HOST ']。$ _SERVER [' REQUEST_URI ']);print_r ($ arrUrl);