PHP 系统根目录、根URL的判断

我们的应用系统有可能会被放在非根目录下运行,如果程序中用了绝对路径的话,则必须考虑该应用的根目录。

设系统配置文件名为 common.inc.php,放在该应用的根目录的include目录下,即路径为 ./include/common.inc.php。

现在要在该文件中,设置系统根目录、根URL(指到达该应用根目录的URL层次)常量,程序如下所示

 

 

define('TTINC', str_replace("//", '/', dirname(__FILE__) ) ); define('TTROOT', substr(TTINC,0,-8)); //根目录,如d:/root/tjt 该目录include的长度为7 再加一个 / 的长度 $tempArr=explode("/",TTROOT); define('TTHOST', 'http://'.$_SERVER['HTTP_HOST'].'/'.$tempArr[count($tempArr)-1]); //该系统路径,已考虑放在子目录,如 http://localhost/tjt

 

说明:

__FILE__:   系统变量,指当前PHP文件名,与文件包含关系无关,含完整路径,如D:/webroot/tjt/include/index.php

dirname(__FILE__): 取到目录,如d:/root/tjt/include

substr(TTINC,0,-8):  因为该文件被放在了include文件夹下,故去掉之,结果为 d:/root/tjt

$tempArr=explode("/",TTROOT);:根据 / 分割字符串,以提取最后一级目录名,此处也即为该应用的根目录名了,即 'tjt'

'http://'.$_SERVER['HTTP_HOST'].'/'.$tempArr[count($tempArr)-1]:这样就构成了根url了,此处为 http://localhost/tjt

 

 

如下一些常用的PHP系统常量:

__FILE__ 当前PHP文件名

__LINE__ 当前PHP文件中所在的行数

__FUNCTION__ 当前所执行的函数

__CLASS__ 当前所执行的类

PHP_VERSION PHP的版本

PHP_OS 当前服务器的操作系统

TRUE 同true

FALSE 同false

E_ERROR 到最近的错误处

E_WARNING 到最近的警告处

E_PARSE 语法有错误处

E_NOTICE PHP语言中有异常处

M__PI 圆周率

M__E 科学常数e

M__LOG2E 以2为底e的对数

M_LOG10E 以10为底e的对数

M_LN2 2的自然对数

M_LN10 10的自然对数

 

 

你可能感兴趣的:(PHP 系统根目录、根URL的判断)