How do I get a file name from a full path with PHP?

后端 未结 14 2260
花落未央
花落未央 2020-11-22 10:56

For example, how do I get Output.map

from

F:\\Program Files\\SSH Communications Security\\SSH Secure Shell\\Output.map

相关标签:
14条回答
  • 2020-11-22 10:59

    There are several ways to get the file name and extension. You can use the following one which is easy to use.

    $url = 'http://www.nepaltraveldoor.com/images/trekking/nepal/annapurna-region/Annapurna-region-trekking.jpg';
    $file = file_get_contents($url); // To get file
    $name = basename($url); // To get file name
    $ext = pathinfo($url, PATHINFO_EXTENSION); // To get extension
    $name2 =pathinfo($url, PATHINFO_FILENAME); // File name without extension
    
    0 讨论(0)
  • 2020-11-22 11:04

    You're looking for basename.

    The example from the PHP manual:

    <?php
    $path = "/home/httpd/html/index.php";
    $file = basename($path);         // $file is set to "index.php"
    $file = basename($path, ".php"); // $file is set to "index"
    ?>
    
    0 讨论(0)
  • 2020-11-22 11:05

    To get the exact file name from the URI, I would use this method:

    <?php
        $file1 =basename("http://localhost/eFEIS/agency_application_form.php?formid=1&task=edit") ;
    
        //basename($_SERVER['REQUEST_URI']); // Or use this to get the URI dynamically.
    
        echo $basename = substr($file1, 0, strpos($file1, '?'));
    ?>
    
    0 讨论(0)
  • 2020-11-22 11:10

    To do this in the fewest lines I would suggest using the built-in DIRECTORY_SEPARATOR constant along with explode(delimiter, string) to separate the path into parts and then simply pluck off the last element in the provided array.

    Example:

    $path = 'F:\Program Files\SSH Communications Security\SSH SecureShell\Output.map'
    
    //Get filename from path
    $pathArr = explode(DIRECTORY_SEPARATOR, $path);
    $filename = end($pathArr);
    
    echo $filename;
    >> 'Output.map'
    
    0 讨论(0)
  • 2020-11-22 11:12

    Try this:

    echo basename($_SERVER["SCRIPT_FILENAME"], '.php') 
    
    0 讨论(0)
  • 2020-11-22 11:14

    I've done this using the function PATHINFO which creates an array with the parts of the path for you to use! For example, you can do this:

    <?php
        $xmlFile = pathinfo('/usr/admin/config/test.xml');
    
        function filePathParts($arg1) {
            echo $arg1['dirname'], "\n";
            echo $arg1['basename'], "\n";
            echo $arg1['extension'], "\n";
            echo $arg1['filename'], "\n";
        }
    
        filePathParts($xmlFile);
    ?>
    

    This will return:

    /usr/admin/config
    test.xml
    xml
    test
    

    The use of this function has been available since PHP 5.2.0!

    Then you can manipulate all the parts as you need. For example, to use the full path, you can do this:

    $fullPath = $xmlFile['dirname'] . '/' . $xmlFile['basename'];
    
    0 讨论(0)
提交回复
热议问题