PHP strip неизвестное расширение файла - PullRequest
6 голосов
/ 02 июня 2011

Я понимаю, что с помощью функции PHP basename() вы можете удалить известное расширение файла из пути, например,

basename('path/to/file.php','.php')

но что, если вы не знаете, какое расширение имеет файл или его длину? Как мне это сделать?

Заранее спасибо!

Ответы [ 5 ]

9 голосов
/ 02 июня 2011

pathinfo() уже упоминалось здесь, но я хотел бы добавить, что из PHP 5.2 также имеет простой способ доступа к имени файла БЕЗ расширения.

$filename = pathinfo('path/to/file.php', PATHINFO_FILENAME);

Значение $filename будет file.

4 голосов
/ 02 июня 2011

Вы можете извлечь расширение, используя pathinfo и обрезать его.

// $filepath = '/path/to/some/file.txt';
$ext = pathinfo($filepath, PATHINFO_EXTENSION);
$basename = basename($filepath, ".$ext");

Обратите внимание на . до $ext

0 голосов
/ 02 июня 2011

Вы можете попробовать это:

$filepath = 'path/to/file.extension';
$extension = strtolower(substr(strrchr($filepath, '.'), 1));
0 голосов
/ 02 июня 2011

Попробуйте это: -

$path = 'path/to/file.php';

$pathParts = pathinfo( $path );

$pathWihoutExt = $pathParts['dirname'] . DIRECTORY_SEPARATOR . $pathParts['filename'];
0 голосов
/ 02 июня 2011
$filename = preg_replace('@\.([^\.]+)$@', '', $filename);
...