Как удалить расширение файла из строки в PHP

Существует несколько способов удалить расширение файла из строки в PHP. В этом посте мы рассмотрим 4 способа:

  • Использование функции pathinfo()
  • Использование функций substr() и strrpos().
  • Использование функций explode() и implode()
  • Использование регулярных выражений (regex)

Использование функции pathinfo()

Использование функции pathinfo() — один из способов удалить расширение строки в PHP.

Пример 

<?php
   $filename = 'exampleFile.txt';
   $filenameWithoutExtension = pathinfo($filename, PATHINFO_FILENAME);
?>

В этом подходе функция pathinfo() вызывается с двумя параметрами: строкой имени файла и константой PATHINFO_FILENAME. Функция возвращает ассоциативный массив, содержащий информацию о пути. Доступ к элементу массива PATHINFO_FILENAME дает вам имя файла без расширения.

В приведенном выше примере переменная $filenameWithoutExtension будет содержать значение «example», которое представляет собой имя файла без расширения.

Вы можете заменить «exampleFile.txt» собственной строкой имени файла, чтобы удалить расширение из другого имени файла.

Использование функций substr() и strrpos().

Использование функций substr() и strrpos() — это еще один способ удалить расширение строки в PHP. Вот пример:

<?php
   $filename = 'exampleFile.txt';
   $extensionPosition = strrpos($filename, '.');
   $filenameWithoutExtension = substr($filename, 0, $extensionPosition);
?>

В методе strrpos() используется для поиска позиции последнего вхождения точки (.) в строке имени файла. Он возвращает позицию как целое число. Затем функция substr() используется для извлечения подстроки от начала имени файла до позиции расширения.

Использование функций explode() и implode()

Использование функций explode() и implode() — это еще один способ удалить расширение строки в PHP. Вот пример:

<?php
   $filename = 'exampleFile.txt';
   $parts = explode('.', $filename);
   array_pop($parts);
   $filenameWithoutExtension = implode('.', $parts);
?>

В этом подходе метод взрыв() используется для разделения строки имени файла на массив на основе разделителя-точки (.). При этом создается массив, где каждый элемент представляет часть имени файла. Затем array_pop() используется для удаления последнего элемента из массива, соответствующего расширению файла. Наконец, implode() используется для соединения оставшихся частей имени файла вместе с помощью разделителя-точки (.).

Использование регулярных выражений (regex)

Использование регулярных выражений (regex) — это еще один способ удалить расширение строки в PHP. Вот пример:

<?php
   $filename = 'exampleFile.txt';
   $filenameWithoutExtension = preg_replace('/\.[^.]+$/', '', $filename);
?>

В этом методе функция preg_replace() используется с шаблоном регулярного выражения для сопоставления расширения файла и замены его пустой строкой. Шаблон /\.[^.]+ $ / соответствует точке (.), за которой следует один или несколько символов, не являющихся точкой (нежадный), до конца строки.

Примечание. Регулярные выражения предоставляют гибкий способ сопоставления строк и манипулирования ими, но они требуют некоторых знаний синтаксиса регулярных выражений.

Обязательно учитывайте крайние случаи и при необходимости корректируйте рисунок в соответствии с вашими конкретными требованиями.

Заключение

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