[英]PHP get website root absolute URL in server?
我非常依赖$_SERVER["DOCUMENT_ROOT"]
来获取绝对路径。 但是,这不适用于URL未指向根的站点。
我将网站存储在以下文件夹中:
都直接在根内。 有没有办法在服务器中获取当前站点根目录的路径?
它应该返回:
/var/chroot/home/content/02/6945202/html/site1 // If the site is stored in folder 'site1'
/var/chroot/home/content/02/6945202/html // If the site is stored in the root
您只需将dirname($_SERVER['SCRIPT_NAME'])
附加到$_SERVER['DOCUMENT_ROOT']
。
更新
该网站似乎是“挂载”在该文件夹上的目录,因此SCRIPT_NAME
显然是/
。
因此,要完成这项工作,您必须使用__DIR__
或dirname(__FILE__)
来查找脚本在文件系统中的位置。
更新2
整个站点没有单一的index.php
控制器,因此也不起作用。
下面的表达式用字符串“减法”来查找公共路径。 你有一个已知的前缀(文档根),一个未知的(根文件夹)和一个已知的后缀(脚本路径),所以要找到前两个,你取完整的绝对路径( __FILE__
)并减去已知的后缀:
substr(__FILE__, 0, -strlen($_SERVER['SCRIPT_NAME']));
如果包含的文件需要此值,则必须先将其存储在常量中,然后才能包含依赖脚本。 。
对于未来的谷歌,这对我也有用
substr(substr(__FILE__, strlen(realpath($_SERVER['DOCUMENT_ROOT']))), 0, - strlen(basename(__FILE__)));
只需使用getcwd()
获取当前脚本所在文件夹的当前绝对服务器路径。
您可以在网站顶部定义一个常量,以便网站的其余部分可以依赖该路径。
define('MY_SERVER_PATH', getcwd());
使用以下方法从服务器设置中获取绝对根URL
str_replace($_SERVER['DOCUMENT_ROOT']."/",$_SERVER['PHPRC'],$_SERVER['REAL_DOCUMENT_ROOT'])
或使用getcwd() 。 它获取应用程序的当前工作目录
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.