Web

Как мне получить имя файла из полного пути с помощью PHP

Например, как мне получить Output.map

из

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

с помощью PHP?

 

Ответ 1

Можно это сделать с помощью basename.

Пример из руководства по PHP:

<?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"

?>

 

Ответ 2

Я сделал это с помощью функции PATHINFO, которая создает массив с частями пути, которые вы можете использовать. Например, вы можете сделать это так:

<?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);

?>

На выходе будет:

/usr/admin/config

test.xml

xml

test

Использование этой функции доступно, начиная с PHP 5.2.0.

Затем вы можете манипулировать всеми частями по своему усмотрению. Например, чтобы использовать полный путь, вы можете сделать это:

$fullPath = $xmlFile['dirname'] . '/' . $xmlFile['basename'];

 

 

Ответ 3

Есть несколько способов узнать имя и расширение файла. Вы можете использовать следующий код, который прост в использовании.

$url = 'http://www.nepaltraveldoor.com/images/trekking/nepal/annapurna-region/Annapurna-region-trekking.jpg';

$file = file_get_contents($url); // получить файл

$name = basename($url); // получить имя файла

$ext = pathinfo($url, PATHINFO_EXTENSION); //  получить расширение файла

$name2 =pathinfo($url, PATHINFO_FILENAME); //  получить имя файла без расширения

 

Ответ 4

Чтобы сделать это с наименьшими затратами, я бы предложил использовать встроенную константу DIRECTORY_SEPARATOR вместе с explode(delimiter, string), чтобы разделить путь на части, а затем просто отсоединить последний элемент в предоставленном массиве.

Пример:

$path = 'F:\Program Files\SSH Communications Security\SSH SecureShell\Output.map'

// получение полного пути файла

$pathArr = explode(DIRECTORY_SEPARATOR, $path);

$filename = end($pathArr);

echo $filename;

>> 'Output.map'

 

Ответ 5

Это просто. Например:

<?php

    function filePath($filePath) {

 

        $fileParts = pathinfo($filePath);

         if (!isset($fileParts['filename'])) {

 

 

            $fileParts['filename'] = substr($fileParts['basename'], 0, strrpos($fileParts['basename'], '.'));

        }

        return $fileParts;

    }

     $filePath = filePath('/www/htdocs/index.html');

 

    print_r($filePath);

?>

Результатом будет:

Array (

    [dirname]     => /www/htdocs

    [basename] => index.html

    [extension]  => html

    [filename]    => index

)


Ответ 6

Чтобы получить точное имя файла из URI, я бы использовал этот метод:

<?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, '?'));

?>

 

Схожие статьи

Как закомментировать строку в HTML: примеры комментирования кода
Web

Как закомментировать строку в HTML: примеры комментирования кода

Как обойти блокировку интернета на работе и зайти на нужные сайты?
Web

Как обойти блокировку интернета на работе и зайти на нужные сайты?

Архив сайтов: какие сайты самые старые в интернете
Web

Архив сайтов: какие сайты самые старые в интернете

Web

Принудительная загрузка файла с помощью PHP