Php извлечь имя файла

basename

При передаче строки с путем к файлу или каталогу, данная функция вернет последний компонент имени из данного пути.

Список параметров

На платформах Windows в качестве разделителей имен директорий используются оба слеша (прямой / и обратный \). В других операционных системах разделителем служит прямой слеш (/).

Если компонент имени заканчивается на suffix , то он также будет отброшен.

Возвращаемые значения

Возвращает базовое имя указанного пути path .

Примеры

Пример #1 Пример использования функции basename()

echo «1) » . basename ( «/etc/sudoers.d» , «.d» ). PHP_EOL ;
echo «2) » . basename ( «/etc/passwd» ). PHP_EOL ;
echo «3) » . basename ( «/etc/» ). PHP_EOL ;
echo «4) » . basename ( «.» ). PHP_EOL ;
echo «5) » . basename ( «/» );
?>

Результат выполнения данного примера:

1) sudoers 2) passwd 3) etc 4) . 5)

Примечания

Замечание:

basename() наивно оперирует исключительно исходной строкой и не учитывает реальную файловую систему или компоненты пути типа «..«.

Замечание:

basename() учитывает настройки локали, поэтому для корректной обработки пути с многобайтными символами должна быть установлена соответствующая локаль с помощью функции setlocale() function.

Смотрите также

  • dirname() — Возвращает имя родительского каталога из указанного пути
  • pathinfo() — Возвращает информацию о пути к файлу

Источник

PHP basename() Function

The basename() function returns the filename from a path.

Syntax

Parameter Values

Parameter Description
path Required. Specifies a file path
suffix Optional. A file extension. If the filename has this file extension, the file extension will be cut off

Technical Details

Unlock Full Access 50% off

COLOR PICKER

colorpicker

Join our Bootcamp!

Report Error

If you want to report an error, or if you want to make a suggestion, do not hesitate to send us an e-mail:

Thank You For Helping Us!

Your message has been sent to W3Schools.

Top Tutorials
Top References
Top Examples
Get Certified

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Источник

Php извлечь имя файла

Самое первое, что приходит на ум это путь:

Способ получения имени файла из $_SERVER[‘REQUEST_URI’]

Соорудим вот такую конструкцию и посмотрим, что оан выведет:

Как видим данная конструкция выводит имя файла:

Получение имени файла из

Сразу скажем — здесь есть «НО» — может выдавать имя файла, только в том случае, если скрипт установлен в этом файле.

Как вы знаете, есть такая константа — __FILE__, которая укажет путь до файла.

Способ получения имени файла с помощью

Далее нам потребуется применим его к выше приведенному И поскольку возвращает массив, то нам потребуется print_r

Array
(
[dirname] => home/domen/dwweb_ru/www/page/php/file
[basename] => 006_poluchit_imya_fayla_iz_puti_php.html
[extension] => html
[filename] => 006_poluchit_imya_fayla_iz_puti_php
)

Далее возьмем отсюда «filename» и выведем вот так, поскольку — это уже будет строкой, то можем использовать echo:

Результат получения имени файла через php:

Как видим. имя файла прекрасно вывелось!

Используем в третьем способе получения имени файла

Опять будем использовать $_SERVER[‘REQUEST_URI’].

Разделим строку в массив с помощью и получим:

После этого нам можно получить последний элемент массива end:

Результат получения имени файла из пути с помощью

Как видим- имя файла прекрасно извлеклось из пути!

Источник

Работа с именами файлов в PHP

Набор PHP функций для работы с путями и именами файлов.

Получить имя файла

echo basename('path/file.png'); // file.png

Имя файла без расширения

$info = pathinfo('path/file.png'); echo $info['filename']; // file /* или */ echo pathinfo('path/donut.png', PATHINFO_FILENAME); // file

Получить расширение файла

echo mb_strtolower(mb_substr(mb_strrchr('path/file.png', '.'), 1)); // png /* или */ echo pathinfo('path/file.png', PATHINFO_EXTENSION); // png

Заменить расширение файла

Заменить расширение .jpeg на .jpg:

$file_name = 'file.jpeg'; $file_new = preg_replace('/\.jpeg$/', '.jpg', $file_name); echo $file_new; // file.jpg

Заменить несколько расширений на одно (.jpg, .jpeg, .png на .webp):

$file_name = 'file.jpeg'; $file_new = preg_replace('/\.(jpg|jpeg|png)$/', '.webp', $file_name); echo $file_new; // file.webp

Дописать текст в конец названия файла

$info = pathinfo('path/file.png'); $name = $info['dirname'] . '/' . $info['filename'] . '-' . time() . '.' . $info['extension']; echo $name; // path/file-1610877618.png

Безопасное сохранение файла

Чтобы не затереть существующий файл на сервере можно применить данную функцию.

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

function safe_file($filename) < $dir = dirname($filename); if (!is_dir($dir)) < mkdir($dir, 0777, true); >$info = pathinfo($filename); $name = $dir . '/' . $info['filename']; $prefix = ''; $ext = (empty($info['extension'])) ? '' : '.' . $info['extension']; if (is_file($name . $ext)) < $i = 1; $prefix = '_' . $i; while (is_file($name . $prefix . $ext)) < $prefix = '_' . ++$i; >> return $name . $prefix . $ext; > // Если в директории есть файл log.txt, файл будет сохранен с названием log_1.txt file_put_contents(safe_file(__DIR__ . '/log.txt'), $text);

Источник

Читайте также:  Python print error trace
Оцените статью