Как получить расширение, имя файла из пути к файлу с помощью javascript и php

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

Javascript

Чтобы получить имя файла, мы разделим его символом косой черты /. Чтобы достичь этого в Javascript, мы будем использовать следующее регулярное выражение /^.*[\\\/]/:

// Any filepath, even inverted slash
// var filepath = "\\myfilepath\\extensions\\filename.png";
var filepath = "/myfilepath/extensions/filename.png";
// Use the regular expression to replace the non-matching content with a blank space
var filenameWithExtension = filepath.replace(/^.*[\\\/]/, '');
// outputs filename.png
console.log(filenameWithExtension);

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

Если вы не хотите использовать регулярное выражение, поскольку уверены, что указанные пути к файлам используют только определенный тип косой черты (или / или \), вы можете разбить строку на указанный символ и затем получить последний вещь:

var filepath = "/myfilepath/extensions/filename.png";
// With a normal slash
var group = filepath.split("/");
// or a path with an inverted slash
// var group = filepath.split("\\");
// Use the regular expression to replace the non-matching content with a blank space
var filenameWithExtension = group.pop();
// Or if you can't use pop()
// var filenameWithExtension = group[group.length - 1];
// outputs filename.png
console.log(filenameWithExtension);

PHP

В PHP мы будем использовать функцию basename, которая доступна во всех версиях php:

$filepath = "/myfilepath/extensions/filename.jpg";
$filename = basename($filepath); // filename.jpg

Примечание: у basename есть известная ошибка при обработке азиатских символов, чтобы избежать этого, вы можете вместо этого использовать Regular Expression и preg_replace:

$filepath = "/myfilepath/extensions/filename.jpg";
$filename = preg_replace('/^.+[\\\\\\/]/', '', $filepath);  // filename.jpg

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

Javascript

Чтобы извлечь расширение из пути (или имени файла, в данном случае это не имеет значения) с помощью Javascript мы разделим строку на. символ, и мы получим последний элемент полученного массива.

var path = "path/a-long/path/to-my/file.jpg";
var path_splitted = path.split('.');
var extension = path_splitted.pop();
// Here the file will not have extension !
if(extension === path){
// The filepath doesn't have . characters, that means doesn't have extension. for example :
// if you try with : path/to/my/file/thisisafile
// extension == path/to/my/file/thisisafile
}
// show extension
console.log(extension);

PHP

Чтобы извлечь расширение из пути с помощью php, мы будем использовать функцию pathinfo.

$path = "this-is-my/long/filepath/to/file.txt";
$ext = pathinfo($path, PATHINFO_EXTENSION);// PATHINFO_EXTENSION is a constant
echo $ext; // output txt

Примечание: если функция pathinfo недоступна в вашей среде, используйте вместо нее функцию end.

$path = "this-is-another-long-path/to/my/file.txt";
$array_ofpath = explode('.', $path);//explode returns an array
$extension = end($array);
Ссылка на основную публикацию
Adblock
detector