удалить расширение из файла [дубликат]


Возможный Дубликат:
Как удалить расширение из строки (только реальное расширение!)

Я совершенно новичок в php, и мне еще многому предстоит научиться! Я экспериментирую с MiniGal Nano для нашего сайта Общества радужной оболочки глаза округа Кинг. Это довольно хорошо подходит для наших целей, за одним небольшим исключением: имя файла фотографии должно быть видно под миниатюрой. Я создал обходной путь, но он показывает расширение. Я нашел примеры кода функций, но у меня нет идея, как включить их в существующий код. Любая помощь будет весьма признательна.

Ссылка для примера: http://www.kcis.org/kcisphotogallery.php?dir=Iris .Японский

Большое спасибо!

Author: Community, 2013-01-08

3 answers

Есть несколько способов сделать это, но я думаю, что один из более быстрых способов заключается в следующем

// $filename has the file name you have under the picture
$temp = explode('.', $filename);
$ext  = array_pop($temp);
$name = implode('.', $temp);

Другое решение заключается в следующем. Я не тестировал его, но похоже, что он должен работать в течение нескольких периодов в имени файла

$name = substr($filename, 0, (strlen($filename))-(strlen(strrchr($filename, '.'))));

Также:

$info = pathinfo($filename);
$name = $info['filename'];
$ext  = $info['extension'];

// Shorter
$name = pathinfo($file, PATHINFO_FILENAME);

// Or in PHP 5.4
$name = pathinfo($filename)['filename'];

Во всех из них $name содержит имя файла без расширения

 30
Author: Ascherer, 2015-05-08 18:28:42

Для этого вы можете использовать pathinfo().

<?php

// your file
$file = 'image.jpg';

$info = pathinfo($file);

// from PHP 5.2.0 :
$file_name = $info['filename'];

// before PHP 5.2.0 :
// $file_name =  basename($file,'.'.$info['extension']);

echo $file_name; // outputs 'image'

?>
 7
Author: hek2mgl, 2013-01-07 22:08:05

Если вы точно знаете, что расширение файла всегда будет состоять из четырех символов (например, ".jpg"), вы можете просто использовать substr(), где вы выводите имя файла:

echo substr($filename, 0, -4);

Если есть вероятность, что в расширении файла будут изображения с большим или меньшим количеством символов (например, ".jpeg"), вам нужно будет узнать, где находится последняя точка. Поскольку вы выводите имя файла с первого символа, позиция точки может использоваться для указания количества символов, которые вы хотите отобразить:

$period_position = strrpos($filename, ".");
echo substr($filename, 0, $period_position);

Для получения информации об этих функциях ознакомьтесь с руководством по PHP по адресу http://php.net/substr и http://php.net/strrpos.

 3
Author: rickdenhaan, 2013-01-07 22:12:10