如何从 PHP 获取 URL 的“应用程序根”?

php
2022-08-30 19:12:21

如果我的URL是,而我在磁盘上的目录结构是,我该如何提取该部分?另外,如果没有应用程序文件夹,应用程序根目录只有“/”,该怎么办?是否有用于获取该值的预定义变量?http://www.server.com/myapp/stuff/to/seehtdocs/myapp/*/myapp

我想要的是一个能够修剪掉请求URI的函数,这样我就只剩下.并且,如果我要将应用程序移动到服务器文档根目录,请让它也确定(以便将其返回为/myapp/stuff/to/see/stuff/to/see/stuff/to/see)

我的目录结构是这样的:

application
  |-config
    |-config.inc.php
library
  |-autoload.class.php
public
  |-css
  |-img
index.php

所以,从索引.php,我想知道如何得到我上面问过的东西。


答案 1

当您使用 访问页面时,如果 Web 服务器的文档根目录位于 ,则当前路径为 。http://www.server.com/myapp/stuff/to/see/something/htdocs/local/something/htdocs/myapp/stuff/to/see

现在没有明确的解决方案可以得到结果,因为没有明确的定义,你应该得到条路。当你对此有一些规则时,告诉我们,我们也许能够想出一些东西,但没有计算,你可以看到的唯一路径是:/something/htdocs/myapp/

  • http://www.server.com/myapp/stuff/to/see
    $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']
  • /something/htdocs/myapp/stuff/to/see/index.php
    $_SERVER['SCRIPT_FILENAME']
  • /something/htdocs/
    $_SERVER['DOCUMENT_ROOT']
  • /myapp/stuff/to/see
    $_SERVER['REQUEST_URI']
  • /myapp/stuff/to/see/index.php
    $_SERVER['SCRIPT_NAME']$_SERVER['PHP_SELF']

答案 2

对于Web根,正如几个答案中指出的那样。对于应用程序根目录,系统无法判断应用程序中的哪个文件夹是根文件夹。您必须手动设置。DOCUMENT_ROOT

大多数应用程序使用或配置设置定义应用程序根目录,并将其存储在整个应用程序中可用的常量中。dirname(__FILE__);


推荐