如何从PHP获取我的URL的"应用程序根目录"?

sco*_*ttm 21 php

如果我的URL是http://www.server.com/myapp/stuff/to/see和磁盘上的目录结构htdocs/myapp/*,我该如何提取/myapp部件?如果没有应用程序文件夹且应用程序root只是'/',该怎么办?是否有预定义的变量来获取该值?

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

我的目录结构是这样的:

application
  |-config
    |-config.inc.php
library
  |-autoload.class.php
public
  |-css
  |-img
index.php
Run Code Online (Sandbox Code Playgroud)

所以,从index.php,我想知道如何得到我上面提到的.

pok*_*oke 16

当您使用网页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']

  • 使用`<?php print_r($ _SERVER)?>`创建一个测试文件.然后你就会明白你可以用什么方式得到什么:)但我也更新了我的帖子以包含正确的变量. (2认同)

Pek*_*ica 12

对于Web根目录,有DOCUMENT_ROOT几个答案指出.对于应用程序根目录,系统无法告知应用程序中的哪个文件夹是根文件夹.您必须手动设置.

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