PHP中包含的文件的浏览器端路径


Browser-side path of an included file in PHP

在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);