(PHP 3, PHP 4, PHP 5)
dirname -- 返回路径中的目录部分
说明
string dirname ( string path )
给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。
在 Windows 中,斜线(/)和反斜线()都可以用作目录分隔符。在其它环境下是斜线(/)。
例子 1. dirname() 例子
<?php
$path = "/etc/passwd";
$file = dirname($path); // $file is set to "/etc"
?>
注: 在 PHP 4.0.3 中,dirname() 被修正为 POSIX 兼容。本质上就意味着如果在 path 中没有斜线,则返回一个点('.'),表示当前目录。否则返回的是把 path 中结尾的 /component(最后一个斜线以及后面部分)去掉之后的字符串。注意这意味着在老的函数返回一个空字符串的情形下通常从 dirname() 得到的是斜线或者一个点。
dirname() 从 PHP 4.3.0 开始有所改变。请看以下例子:
<?php
// PHP 4.3.0 以前
dirname('c:/'); // 返回 '.'
// PHP 4.3.0 以后
dirname('c:/'); // 返回 'c:'
?>
Dirname 命令用途把指定路径除了最后以外的部分写到标准输出。语法dirname Path描述dirname 命令读取指定路径名保留最后一个“/”(斜杠)及其后面的字符,删除其他部分,并写结果到标准输出。如果最后一个“/”后无字符,dirname 命令使用倒数第二个“/”,并忽略其后的所有字符。dirname 命令在创建路径名的时候遵从以下规则:
如果 Path 参数为“//”(双斜杠),或者参数 Path 全部由斜杠组成,将其转换为单斜杠“/”。跳过步骤 2 到 7。 从指定路径删除尾部的“/”字符。 如果参数 Path 中没有剩下的“/”,则将路径转换成 . (点)。跳过步骤 4 到 7。 从路径中删除尾部的所有非斜杠字符。 如果剩下的路径为“//”(双斜杠),跳到步骤 6。 删除路径尾部的斜杠字符。 如果剩下的路径为空,则转换成单斜杠“/”。例如,输入:
dirname // 结果为 /(斜杠)。输入:
dirname /a/b/ 结果为:/a。输入:
dirname a 结果为 . (点)。输入:
dirname a/b 结果为路径名 a。
命令 dirname 和basename通常在 shell 内部命令替换使用,以指定一个与指定输入文件名略有差异的输出文件名。退出状态此命令返回下列退出值:
0
成功完成
>0
发生错误。
示例要构造和另一文件位于相同目录的一个文件名,请输入:
AOUTFILE=`dirname $TEXTFILE`/a.out这将设置 shell 变量 AOUTFILE 作为文件 a.out 的名称,它与 TEXTFILE 位于同一目录。如果 TEXTFILE 是 /home/fran/prog.c,则 dirname $TEXTFILE 的值成了 /home/fran,且 AOUTFILE 变成了 /home/fran/a.out。文件/usr/bin/dirname
包含令 dirname 命令