快捷搜索:   服务器  PHP  安全  IIS  linux 安全

PHP获取站点根目录 PHP获取相对目录

PHP中经常需要用到获取网站根目录,可以简单的用$_SERVER['DOCUMENT_ROOT']来获取


也可以用公共文件定义路径的方式获取:

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];


顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论