DIRECTORY_SEPARATOR 目录分隔符, linux上便是'/' windows上是'\'
在Windows "\"或者"/" Linux "/" "/" windows和linux都支持
实例:

define(ROOT, dirname(__FILE__).DIRECTORY_SEPARATOR."upload"); //windows和linux平台都支持
PATH_SEPARATOR 路径分隔符, include多个路径利用 在linux上是一个":"号, WINDOWS上是一个";"号
实例:
如何判断操作系统的路径分隔符
if(PATH_SEPARATOR==':'){
$signature = "signature/linux-signature64"; //linux系统
}else{
$signature = "signature\\windows-signature64.exe"; //windows操作系统
}
__FILE__
文件的完全路径和文件名。如果用在被包含文件中,则返回被包含的文件名。
__DIR__
文件所在的目录。(php5.3以上支持)如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。
require_once __DIR__ . '/composer/autoload_real.php';
利用__DIR__常量可以办理在PHP各种框架的路径加载问题
预定义变量:
$_SERVER["DOCUMENT_ROOT"]; 当前运行脚本所在的文档根目录, 与document root有关(根目录的路径);
$_SERVER["PHP_SELF"] 当前实行脚本的文件名(不含根目录,相称于根目录下的文件和文件夹); 表单(action)提交到当前页面会用到
$_SERVER["SCRIPT_NAME"] 包含当前脚本的路径, 这在页面须要指向自己时非常有用(不含根目录,相称于根目录下的文件和文件夹);
$_SERVER["SCRIPT_FILENAME"] 当前实行脚本的绝对路径(最完全的路径);
$_SERVER["REQUEST_URI"] 用来指定要访问的页面, 可能包括利用GET发送的部分(smarty缓存时会用到);
$_SERVER["SERVER_NAME"] 当前运行脚本所在的做事器的主机名(域名)。如果脚本运行于虚拟主机中, 该名称是由那个虚拟主机所设置的值决定;
C:\AppServ\www\52ekt\images\lujing.php
C:/AppServ/www/52ekt/images/lujing.php
一下对应的结果比较
__FILE__ C:\AppServ\www\52ekt\images\lujing.php
__DIR__ C:\AppServ\www\52ekt\images
$_SERVER["DOCUMENT_ROOT"] C:/AppServ/www 重点
$_SERVER["PHP_SELF"] /52ekt/images/lujing.php
$_SERVER["SCRIPT_NAME"] /52ekt/images/lujing.php
$_SERVER["SCRIPT_FILENAME"] C:/AppServ/www/52ekt/images/lujing.php 重点
$_SERVER["REQUEST_URI"] /52ekt/images/lujing.php 重点
$_SERVER["SERVER_NAME"] localhost
__FILE__等同于$_SERVER["SCRIPT_FILENAME"] C:/AppServ/www/52ekt/images/lujing.php
$_SERVER["SCRIPT_NAME"]等同于$_SERVER["REQUEST_URI"] /52ekt/images/lujing.php
路径处理函数: /var/www/html/page.php
basename(url) 返回路径中的文件名部分 page.php
dirname(url) 返回路径中的目录部分 /var/www/html
pathinfo(url) 返回一个关联数组,个中包括指定路径中的目录名、基本名和扩展名
pathinfo(path,options)
options参数:可选。规定要返回的数组元素。默认是 all。
可能的值:
PATHINFO_DIRNAME - 只返回 dirname
PATHINFO_BASENAME - 只返回 basename
PATHINFO_EXTENSION - 只返回 extension
<?php
$path = "/var/www/html/page.php"; //包含有指向一个文件的全路径的字符串
$path_parts=pathinfo($path); //返回包括指定路径中的目录名、基本名和扩展名关联数组
echo $path_parts["dirname"]; //输出目录名/var/www/html
echo $path_parts["basename"]; //输出基本名page.php
echo $path_parts["extension"]; //输出扩展名.php
?>
把稳:php路径不能采取中文名称的路径
realpath() 函数返回绝对路径。
该函数删除所有符号连接(比如 '/./', '/../' 以及多余的 '/'),返回绝对路径名。
若失落败,则返回 false。比如说文件不存在的话。
<?php
echo realpath("Data#userabc.mdb"); //哀求与实行文件在同一目录下
?>
输出: C:\AppServ\www\Data#userabc.mdb
getcwd(void) 函数返回当前目录。
若成功,则返回当前事情目录,否则返回 false。
<?php
echo getcwd();
?>
输出:C:\testweb\main
文件地址:/common/init.php
define('ROOT', str_replace('\\', '\', dirname(__DIR__)));
define('VIEW', ROOT.'/view');
阐明:__DIR__ 获取到 /common 目录
dirname(__DIR__) 获取到/ 根目录
把稳: "域名"的信息一样平常没有固定要设置的地方,不过了为了利用方便,可以放到系统的一样平常配置文件中。
如果是在ThinkPHP框架中,就可以将域名放到项目/分组/Conf/config.php配置文件中;
在ci框架中设置域名application/config/config.php, $config['base_url'] = 'http://www.cnjiaoju.com';
PHP哪些地方须要用到域名,都是看自己的需求和利用环境, 为了系统掩护方便、移植快速都是很少利用完全的"域名+路径"。