PHP使用dirname()、basename()和pathinfo()获得目录名和文件名

使用dirname()basename()pathinfo()函数,可以很容易地使用PHP获取完整路径的文件名(filename)和目录名(directory name),其中pathinfo()还包含文件扩展名。

完整文件路径的示例

这些示例中使用的完整文件路径是:

$path = “/var/www/mywebsite/htdocs/images/myphoto.jpg”;

使用dirname()获取目录名称

PHP的dirname()函数只返回完整路径的目录部分。 这是通过简单地根据目录分隔符(/ 在基于文件系统的*nix上和 \ 在Windows上)排除完整路径的最后一部分来完成的,并且不检查它是否实际上是一个目录。

echo dirname($path)

将返回

/var/www/mywebsite/htdocs/images

注意以下两个:

echo dirname(“/var/www/mywebsite/htdocs/images/”);
echo dirname(“/var/www/mywebsite/htdocs/images”);

将返回

/var/www/mywebsite/htdocs

使用basename()获取文件名

要获取完整路径的文件名部分,请使用basename()函数。 注意,它只是路径的最后一部分被认为是文件名,并且没有进行任何测试以查看它是否实际上是一个文件。

echo basename($path);

将返回

myphoto.jpg

echo basename(“/var/www/mywebsite/htdocs/images”);

将返回

images

使用pathinfo()获取目录名称、文件名和扩展名

PHP的pathinfo()函数返回一个关联数组,其中包含basenamedirnameextension和(来自PHP 5.2.0)没有扩展名的文件名。

print_r(pathinfo($path));

将返回

Array
(
  [dirname] => /var/www/mywebsite/htdocs/images
  [basename] => myphoto.jpg
  [extension] => jpg
  [filename] => myphoto
)