PHP:从路径中删除文件名

Geo*_*ith 31 php

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

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

Byr*_*ock 50

你要 dirname()

  • 如果路径是"images/alphabet/abc /"怎么办? (3认同)

abn*_*317 16

<?php
    $path = pathinfo('images/alphabet/abc/23345.jpg');
    echo $path['dirname'];
?>
Run Code Online (Sandbox Code Playgroud)

http://php.net/manual/en/function.pathinfo.php


Mac*_*ado 14

dirname() 只给你父文件夹的名称,因此dirname() 将无法在那里pathinfo() 不会.

为此,您应该使用pathinfo():

$dirname = pathinfo('images/alphabet/abc/23345.jpg', PATHINFO_DIRNAME);
Run Code Online (Sandbox Code Playgroud)

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/'
    
    Run Code Online (Sandbox Code Playgroud)
  • 对于路径images/alphabet/abc/,dirname失败的地方:

    <?php
    
    $dirname = dirname('images/alphabet/abc/'); 
    // $dirname === 'images/alphabet/'
    
    $dirname = pathinfo('images/alphabet/abc/', PATHINFO_DIRNAME); 
    // $dirname === 'images/alphabet/abc/'
    
    Run Code Online (Sandbox Code Playgroud)