Php передать имя файла

Содержание
  1. Php передать имя файла
  2. Способ получения имени файла из $_SERVER[‘REQUEST_URI’]
  3. Получение имени файла из
  4. Способ получения имени файла с помощью
  5. Результат получения имени файла через php:
  6. Используем в третьем способе получения имени файла
  7. Результат получения имени файла из пути с помощью
  8. Работа с именами файлов в PHP
  9. Получить имя файла
  10. Имя файла без расширения
  11. Получить расширение файла
  12. Заменить расширение файла
  13. Дописать текст в конец названия файла
  14. Безопасное сохранение файла
  15. basename
  16. Список параметров
  17. Возвращаемые значения
  18. Примеры
  19. Примечания
  20. Смотрите также
  21. Использование basename() в PHP 4 мин для чтения
  22. Пример 1: прочитать имя файла из существующего и несуществующего имени файла
  23. Пример 2: прочитать имя файла из пути к файлу
  24. Пример 3: чтение имени файла из URL-адреса с запросом
  25. Пример 4: Прочтите каталог и каталог после исключения последнего каталога из пути
  26. Пример 5: прочитать текущее имя скрипта
  27. Заключение

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

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

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

Читайте также:  Rabbit from monty python

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

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

Источник

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() — Возвращает информацию о пути к файлу

Источник

Использование basename() в PHP 4 мин для чтения

Favorite

Добавить в избранное

Полный список функций файловой системы PHP 5

Ф ункция basename() — это встроенная функция PHP, которая извлекает имя файла по заданному пути. Его можно использовать для печати только имени файла из имени файла или пути к файлу. Эту функцию также можно использовать для печати имени существующего скрипта. Основная цель этой функции — узнать имя файла или имя текущего скрипта для любых целей программирования. В этом руководстве показано, как использовать функцию basename() в PHP.

string basename (string $path [, string $suffix ])

Читайте также:  Python test if tuple

Эта функция может принимать два аргумента. Первый аргумент является обязательным и принимает имя файла или имя файла с путем в виде строкового значения. Второй аргумент является необязательным и используется для получения только имени файла без расширения.

Пример 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-адреса, содержащего переменные запроса.

Читайте также:  Python with ignore exception

Создайте файл 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.

Источник

Оцените статью