Подтвердить что ты не робот

Удалить расширение из файла

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

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

Пример ссылки: http://www.kcis.org/kcisphotogallery.php?dir=Iris.Japanese

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

4b9b3361

Ответ 1

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

// $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 содержит имя файла без расширения

Ответ 2

Вы можете использовать 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'

?>

Ответ 3

Если вы точно знаете, что расширение файла всегда будет длиной четыре символа (например, ".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.