- Как мне получить имя файла из полного пути с помощью PHP
- Ответ 1
- Ответ 2
- Ответ 3
- Ответ 4
- Ответ 5
- Ответ 6
- Работа с именами файлов в PHP
- Получить имя файла
- Имя файла без расширения
- Получить расширение файла
- Заменить расширение файла
- Дописать текст в конец названия файла
- Безопасное сохранение файла
- Php как получить имя файла
- Способ получения имени файла из $_SERVER[‘REQUEST_URI’]
- Получение имени файла из
- Способ получения имени файла с помощью
- Результат получения имени файла через php:
- Используем в третьем способе получения имени файла
- Результат получения имени файла из пути с помощью
- PHP basename() Function
- Syntax
- Parameter Values
- Technical Details
- COLOR PICKER
- Report Error
- Thank You For Helping Us!
Как мне получить имя файла из полного пути с помощью PHP
Например, как мне получить Output.map
из
F:\Program Files\SSH Communications Security\SSH Secure Shell\Output.map
с помощью PHP?
Ответ 1
Можно это сделать с помощью basename .
Пример из руководства по 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, которая создает массив с частями пути, которые вы можете использовать. Например, вы можете сделать это так:
$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
Это просто. Например:
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, я бы использовал этот метод:
$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, ‘?’));
?>
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
Работа с именами файлов в 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);
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 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
COLOR PICKER
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.