获取根目录

$dir = $_SERVER['DOCUMENT_ROOT'] 

原生

echo “显示脚本文件的相对路径和文件名:\”".$_SERVER["PHP_SELF"].”\”<br>”;
echo “显示服务器使用的CGI脚本规范:\”".$_SERVER["GATEWAY_INTERFACE"].”\”<br>”;
echo “显示当前运行脚本所在服务器的IP地址:\”".$_SERVER["SERVER_ADDR"].”\”<br>”;
echo “显示当前运行脚本服务器名称:\”".$_SERVER["SERVER_NAME"].”\”<br>”;
echo “显示当前运行脚本服务器标识:\”".$_SERVER["SERVER_SOFTWARE"].”\”<br>”;
echo “显示请求页面的通信协议的名称和版本:\”".$_SERVER["SERVER_PROTOCOL"].”\”<br>”;
echo “显示访问页面的请求方法:\”".$_SERVER["REQUEST_METHOD"].”\”<br>”;
echo “显示脚本开始运行时间:\”".$_SERVER["REQUEST_TIME"].”\”<br>”;
echo “显示URL问号后的字符串:\”".$_SERVER["QUERY_STRING"].”\”<br>”;
echo “显示当前运行脚本的文档根目录:\”".$_SERVER["DOCUMENT_ROOT"].”\”<br>”;
echo “显示当前Accept请求的头信息:\”".$_SERVER["HTTP_ACCEPT"].”\”<br>”;
echo “显示当前请求的字符信息:\”".$_SERVER["HTTP_ACCEPT_CHARSET"].”\”<br>”;
echo “显示当前当前请求的Accept-Encoding头信息:\”".$_SERVER["HTTP_ACCEPT_ENCODING"].”\”<br>”;
echo “显示当前请求的Accept-Language头信息:\”".$_SERVER["HTTP_ACCEPT_LANGUAGE"].”\”<br>”;
echo “显示当前请求的Connection头信息:\”".$_SERVER["HTTP_CONNECTION"].”\”<br>”;
echo “显示当前请求的Host头信息:\”".$_SERVER["HTTP_HOST"].”\”<br>”;
echo “显示当前页面的前一个页面的URL地址:\”".$_SERVER["HTTP_REFERER"].”\”<br>”;
echo “显示当前请求的User-Agent的头信息:\”".$_SERVER["HTTP_USER_AGENT"].”\”<br>”;
echo “显示脚本是否可以通过HTTPS协议进行访问:\”".$_SERVER["HTTPS"].”\”<br>”;
echo “显示浏览当前页面用户的IP地址:\”".$_SERVER["REMOTE_ADDR"].”\”<br>”;
echo “显示浏览当前页面用户的主机名:\”".$_SERVER["REMOTE_HOST"].”\”<br>”;
echo “显示用户连接到服务器时所使用的端口:\”".$_SERVER["REMOTE_PORT"].”\”<br>”;
echo “显示当前执行脚本的绝对路径名:\”".$_SERVER["SCRIPT_FILENAME"].”\”<br>”;
echo “显示Apache配置文件中的SERVER_ADMIN参数设置情况:\”".$_SERVER["SERVER_ADMIN"].”\”<br>”;
echo “显示网络服务器使用的端口,默认为\”80\”:\”".$_SERVER["SERVER_PORT"].”\”<br>”;
echo “显示服务器版本和虚拟主机名的字符串:\”".$_SERVER["SERVER_SIGNATURE"].”\”<br>”;
echo “显示脚本在文件系统中的基本路径:\”".$_SERVER["PATH_TRANSLATED"].”\”<br>”;
echo “显示当前脚本的路径:\”".$_SERVER["SCRIPT_NAME"].”\”<br>”;
echo “显示访问当前页面的URI:\”".$_SERVER["REQUEST_URI"].”\”<br>”;
?>

获取域名信息:

#测试网址:     http://localhost/blog/testurl.php?id=5

//获取域名或主机地址 
echo $_SERVER['HTTP_HOST']."<br>"; #localhost

//获取网页地址 
echo $_SERVER['PHP_SELF']."<br>"; #/blog/testurl.php

//获取网址参数 
echo $_SERVER["QUERY_STRING"]."<br>"; #id=5

//获取用户代理 
echo $_SERVER['HTTP_REFERER']."<br>"; 

//获取完整的url
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
#http://localhost/blog/testurl.php?id=5

//包含端口号的完整url
echo 'http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; 
#http://localhost:80/blog/testurl.php?id=5

//只取路径
$url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]; 
echo dirname($url);
#http://localhost/blog


获取http或者https
$http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';

//通上个一块看
 $url=$http_type.$_SERVER['SERVER_NAME'];

5.0和5.1的获取方式是不一样的
常量调整
5.1取消了所有的框架内置常量(不影响应用代码中的自定义常量),如需获取,请使用think\facade\App类的内置方法以及think\facade\Env类获取,下面给出的是5.0和5.1的常量对照表:
5.0常量 5.1获取方法
EXT 取消,固定使用 .php
IS_WIN 取消
IS_CLI 取消
DS 使用PHP自带 DIRECTORY_SEPARATOR
ENV_PREFIX 取消,固定使用PHP_
THINK_START_TIME App::getBeginTime()
THINK_START_MEM App::getBeginMem()
THINK_VERSION App::version()
THINK_PATH Env::get(‘think_path’)
LIB_PATH Env::get(‘think_path’) . ‘library/’
CORE_PATH Env::get(‘think_path’) . ‘library/think/’
APP_PATH Env::get(‘app_path’)
CONFIG_PATH Env::get(‘config_path’)
CONFIG_EXT App::getConfigExt()
ROOT_PATH Env::get(‘root_path’)
EXTEND_PATH Env::get(‘root_path’) . ‘extend/’
VENDOR_PATH Env::get(‘root_path’) . ‘vendor/’
RUNTIME_PATH Env::get(‘runtime_path’)
LOG_PATH Env::get(‘runtime_path’) . ‘log/’
CACHE_PATH Env::get(‘runtime_path’) . ‘cache/’
TEMP_PATH Env::get(‘runtime_path’). ‘temp/’
MODULE_PATH Env::get(‘module_path’)
通过Env类的get方法获取路径变量的时候不区分大小写,例如下面的写法是等效的:
Env::get(‘root_path’);
Env::get(‘ROOT_PATH’);

php

例如:一个test.php文件在 var/www/test/目录下

取得 路径 + 文件名 (要取得 /var/www/test/test.php)

__FILE__


取得 文件名 (要取得 test.php)

basename(__FILE__)


取得 不含后缀名的文件名 (要取得 test)

basename(__FILE__, '.php')


取得 当前目录(要取得 /var/www/test)

dirname(__FILE__)


取得 上层目录 (要取得 /var/www)

dirname(dirname(__FILE__))



ps:你可以先建个php文件,加上echo输出测试。

<?php
echo __FILE__;
?>

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐