博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP获取站点根目录
阅读量:5020 次
发布时间:2019-06-12

本文共 2047 字,大约阅读时间需要 6 分钟。

最简单方式:$_SERVER['DOCUMENT_ROOT'],暴力通俗易懂,网站根目录,GG.

将下面的代码放在网站根目录下的一个文件中,以便在其它文件中引用。

路径方式:

define('BASE_PATH',str_replace('\\','/',realpath(dirname(__FILE__).'/'))."/");

echo BASE_PATH;

 

输出结果:E:/wwwroot/

url方式:

 

$PHP_SELF=$_SERVER['PHP_SELF'];

$url='http://'.$_SERVER['HTTP_HOST'].substr($PHP_SELF,0,strrpos($PHP_SELF,'/')+1);

echo $url;

 

输出结果:http://localhost/
 
其它的资料整理:
 

PHP取得站点根目录

 

echo $_SERVER['HTTP_HOST'];//当前请求的 Host: 头部的内容 即域名信信息

echo $_SERVER['PHP_SELF'];//当前正在执行脚本的文件相对网站根目录地址,就算该文件被其他文件引用也可以正确得到地址

 

echo $_SERVER['SCRIPT_NAME'];//当前正在执行脚本的文件相对网站根目录地址,但当该文件被其他文件引用时,只显示引用文件的相对地址,不显示该被引用脚本的相对地址。

 

echo $_SERVER['DOCUMENT_ROOT'];//网站相对服务器地址即网站的绝对路径名 #当前运行脚本所在的文档根目录。在服务器配置文件中定义

 

echo $_SERVER['SCRIPT_FILENAME'];//当前执行脚本的绝对路径名。

 

方法一:

 

今天讲了大致的站点目录结构,其中说到了怎样取得站点根目录,好多同学不是很理解,下面一步一步道来:

 

我的站点目录据对路径:D:\www\message2011,测试文件路径:D:\www\message2011\include\config.inc.php

 

在根目录下新建一个文件,也可以隔一层目录创建,就以上面为例,我要在config.inc.php中取得站点的根目录。

 

1、取得当前文件的路径:用魔术常量__FILE__。这里的路径包含了文件名,结果如下:

 

D:\www\message2011\include\config.inc.php

 

2、去掉上面路径的文件名,得到纯路径:dirname(__FILE__),结果如下:

 

D:\www\message2011\include

 

3、返回一层目录到根目录:realpath(dirname(__FILE__).'/../'),结果如下:

 

D:\www\message2011

 

4、把向左的”\“转化成向右的”/“:str_replace( '\\' , '/' , realpath(dirname(__FILE__).'/../')),结果如下:

 

D:/www/message2011

 

到这就是我们想要的站点根目录了,可以根据需求设定第三步返回目录层数,比如:返回2层就是 /../../,那么就会得到 D:\www\,以此类推。

 

方法二:

 

在global.inc   里定义根目录

 

define("APP_ROOT",dirname(__FILE__));

 

在任何PHP文件中可以引用该常量

 

require_once(APP_ROOT."/inc/head.php");

 

 

方法三:

 

<?php

 

$PHP_SELF=$_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];

 

$url='http://'.$_SERVER['HTTP_HOST'].substr($PHP_SELF,0,strrpos($PHP_SELF, '/')+1);

 

echo $url;

 

方法四:

 

$basepath=$_SERVER['PHP_SELF'];

 

$basepath=substr($basepath,0,strpos($basepath,"文件夹名称"));

 

echo $basepath;

 

如:你把文件保存为a.php并路径为:/wjj/wjj1/wjj2/a.php

 

上面的例子就写成:

 

$basepath=$_SERVER['PHP_SELF'];

 

$basepath=substr($basepath,0,strpos($basepath,"wjj1"));

 

echo $basepath;

 

方法五:

 

$basepath=$_SERVER['PHP_SELF'];

 

preg_match("/(\/)?([^\/]+)/",$basepath,$wjm);

 

echo $wjm[0];

转载于:https://www.cnblogs.com/boundless-sky/p/6616401.html

你可能感兴趣的文章
containerd与kubernetes集成部署
查看>>
iview admin 动态加载左侧菜单栏?
查看>>
[Hadoop] - Win7下提交job到集群上去
查看>>
随堂软工团队小测
查看>>
git commit之后未submit,rebase之后找不到自己代码的处理方法
查看>>
数据库的分发与复制
查看>>
MFC程序使用GTest搭建测试框架
查看>>
DMA 如何查看它有没有传输完成 传输完成再开启
查看>>
AC自动机 专题
查看>>
ThinkPHP登陆注册
查看>>
ServiceStack JWT 准备
查看>>
DSP using MATLAB 示例Example3.21
查看>>
《DSP using MATLAB》示例Example 8.6
查看>>
YII学习,初体验 ,对YII的一些理解.
查看>>
Android中Java和JavaScript交互
查看>>
harbor小结
查看>>
php 写的进制转换
查看>>
02填空题
查看>>
动态规划_数字三角形
查看>>
RTLinux简介
查看>>