- Как мне получить имя файла из полного пути с помощью PHP
- Ответ 1
- Ответ 2
- Ответ 3
- Ответ 4
- Ответ 5
- Ответ 6
- Работа с именами файлов в PHP
- Получить имя файла
- Имя файла без расширения
- Получить расширение файла
- Заменить расширение файла
- Дописать текст в конец названия файла
- Безопасное сохранение файла
- File php имя файла
- Способ получения имени файла из $_SERVER[‘REQUEST_URI’]
- Получение имени файла из
- Способ получения имени файла с помощью
- Результат получения имени файла через php:
- Используем в третьем способе получения имени файла
- Результат получения имени файла из пути с помощью
- Использование basename() в PHP 4 мин для чтения
- Пример 1: прочитать имя файла из существующего и несуществующего имени файла
- Пример 2: прочитать имя файла из пути к файлу
- Пример 3: чтение имени файла из URL-адреса с запросом
- Пример 4: Прочтите каталог и каталог после исключения последнего каталога из пути
- Пример 5: прочитать текущее имя скрипта
- Заключение
Как мне получить имя файла из полного пути с помощью 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);
File 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:
Результат получения имени файла из пути с помощью
Как видим- имя файла прекрасно извлеклось из пути!
Использование basename() в PHP 4 мин для чтения
Добавить в избранное
Ф ункция basename() — это встроенная функция PHP, которая извлекает имя файла по заданному пути. Его можно использовать для печати только имени файла из имени файла или пути к файлу. Эту функцию также можно использовать для печати имени существующего скрипта. Основная цель этой функции — узнать имя файла или имя текущего скрипта для любых целей программирования. В этом руководстве показано, как использовать функцию basename() в PHP.
string basename (string $path [, string $suffix ])
Эта функция может принимать два аргумента. Первый аргумент является обязательным и принимает имя файла или имя файла с путем в виде строкового значения. Второй аргумент является необязательным и используется для получения только имени файла без расширения.
Пример 1: прочитать имя файла из существующего и несуществующего имени файла
В следующем примере показано использование функции basename() без необязательного аргумента.
Создайте файл PHP со следующим скриптом. Здесь функция basename() используется для существующих и несуществующих файлов. Функция Check() определена для проверки, существует ли конкретный файл или нет. Оба hello.txt и world.txt файлы используются в функции базового имени() , чтобы узнать имя файла с расширением.
function Check($ file)
if(file_exists($ file))
echo » $ file существует.
»;
else
echo » $ file не существует.
»;
>
// Устанавливаем существующее имя файла
$ basepath1 = «hello.txt»;
// Использование функции basename() без необязательного параметра
echo «
Имя файла с расширением: » . basename($ basepath1) . «
»;
// Устанавливаем несуществующее имя файла
$ basepath2 = «world.txt»;
// Использование функции basename() без необязательного параметра
echo «
Имя файла с расширением: ».basename($ basepath2) . «
»;
// Использование функции basename() с необязательным параметром
echo «
Имя файла без расширения: ».basename($ basepath1 , «.txt» ) . «
» ;
Следующий вывод появится после запуска вышеуказанного сценария с сервера. Вывод показывает, что файл hello.txt существует в текущем месте, а функция basename() возвращает имя файла. World.txt файл не существует в текущем местоположении, но функция basename() по- прежнему возвращает имя файла для этого файла. Таким образом, функция basename() возвращает имя файла из пути к файлу, независимо от того, существует файл или нет.
Пример 2: прочитать имя файла из пути к файлу
В предыдущем примере в первом аргументе функции basename() передается только имя файла. В этом примере показано использование функции basename() для определения имени файла с расширением и без расширения из пути к файлу. «.php» используется как необязательное значение аргумента функции basename(). Если файл PHP существует в пути к файлу, функция basename() вернет имя файла без расширения пути.
// Задаем путь к файлу
$ filepath = «var/www/html/php/book.php» ;
// Получить имя файла с расширением
echo «Имя файла с расширением»;
echo basename($ filepath) . «
»;
// Получить имя файла без расширения
echo «Имя файла без расширения»;
echo basename($ filepath , «.php») . «
» ;
Cледующий вывод появится после запуска вышеуказанного сценария с сервера. Путь, который используется в скрипте, ‘ /var/www/html/php/book.php ‘, содержит файл PHP, а функция basename() возвращает book.php при использовании без необязательного аргумента и возвращает книгу, когда он используется с необязательным аргументом.
Пример 3: чтение имени файла из URL-адреса с запросом
В следующем примере показано, как функцию basename() можно использовать для получения имени файла из URL-адреса, содержащего переменные запроса.
Создайте файл PHP со следующим скриптом. Здесь функция explode() используется для разделения URL-адреса и строки запроса. Эта функция возвращает массив. Первый элемент массива содержит URL-адрес, а второй элемент массива содержит значение строки запроса. Функция basename() используется для определения имени файла из первого элемента массива.
// Задайте URL-адрес с параметром запроса
$ url = «http://localhost/php/customer.php? >
// Получить путь к файлу из URL
$ filepath = explode(«?» , $ Url);
// Получить имя файла с расширением
echo «Имя файла с расширением»;
echo basename($ filepath [ 0 ]) . «
»;
Cледующий вывод появится после запуска вышеуказанного сценария с сервера. Здесь имя файла — customer.php.
Пример 4: Прочтите каталог и каталог после исключения последнего каталога из пути
Функцию basename() также можно использовать для определения имени каталога по пути. Он используется в следующем примере, чтобы узнать имя текущего каталога и имя каталога перед текущим каталогом из пути.
Читать Описание профессиональных аналоговых систем радиосвязи УКВ. Плюсы и минусы аналоговых систем радиосвязи
Создайте файл PHP со следующим скриптом. $ _SERVER [ «PHP_SELF»] используются в функции dirname(), чтобы прочитать полный путь к текущему сценарию, а функция basename() используются для чтения имени каталога, содержащее этот скрипт. Когда конкретный путь определен в функции dirname() и во втором аргументе этой функции используется ‘/’, тогда путь будет считывать путь к каталогу, опуская последнее имя каталога. В этом случае функция basename() вернет имя каталога после исключения последнего каталога из пути.
// Прочитать текущий каталог
$ current_dir = basename(dirname($ _SERVER [ ‘PHP_SELF’ ]) , «/»);
// Распечатать текущий каталог
echo «Текущий рабочий каталог: » . $ current_dir . «
»;
// Считываем родительский каталог по пути
$ dir = basename(dirname(‘/ var/ www/ html/ php’) , «/»);
«Предыдущий каталог по заданному пути: » . $ dir . «»;
?>
Cледующий вывод появится после запуска вышеуказанного сценария с сервера.
Пример 5: прочитать текущее имя скрипта
Функцию basename() также можно использовать для чтения имени текущего скрипта. Когда __FILE__ используется в первом аргументе функции basename(), в качестве вывода будет возвращено имя файла сценария.
// Прочитать имя текущего скрипта
echo «Имя текущего скрипта: ».basename(__FILE__).»» ;
Cледующий вывод появится после запуска вышеуказанного сценария с сервера. В выходных данных отображается имя файла исполняемого сценария.
Заключение
Функция basename() — полезная функция PHP, когда кодировщик работает с файлом или каталогом для различных целей. Различные варианты использования функции basename() объясняются в этой статье на простых примерах, чтобы помочь читателям понять ее правильное использование и применить в своих сценариях PHP.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.