PHP:从路径中删除文件名

新手上路,请多包涵

假设我有一条路径:images/alphabet/abc/23345.jpg

如何从路径末尾删除文件?所以我最终得到:images/aphabet/abc/

原文由 George Reith 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 268
2 个回答

dirname() 只给你父文件夹的名称,所以 dirname() 会失败,而 pathinfo() 不会

为此,您应该使用 pathinfo()

 $dirname = pathinfo('images/alphabet/abc/23345.jpg', PATHINFO_DIRNAME);

PATHINFO_DIRNAME 告诉 pathinfo 直接返回 dirname

看一些例子:

  • 对于路径 images/alphabet/abc/23345.jpg ,两者都有效:
   <?php

  $dirname = dirname('images/alphabet/abc/23345.jpg');
  // $dirname === 'images/alphabet/abc/'

  $dirname = pathinfo('images/alphabet/abc/23345.jpg', PATHINFO_DIRNAME);
  // $dirname === 'images/alphabet/abc/'

  • 对于路径 images/alphabet/abc/ ,其中 dirname 失败:
   <?php

  $dirname = dirname('images/alphabet/abc/');
  // $dirname === 'images/alphabet/'

  $dirname = pathinfo('images/alphabet/abc/', PATHINFO_DIRNAME);
  // $dirname === 'images/alphabet/abc/'

原文由 Machado 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏