удалить расширение из файла [дубликат]
Возможный Дубликат:
Как удалить расширение из строки (только реальное расширение!)
Я совершенно новичок в php, и мне еще многому предстоит научиться! Я экспериментирую с MiniGal Nano для нашего сайта Общества радужной оболочки глаза округа Кинг. Это довольно хорошо подходит для наших целей, за одним небольшим исключением: имя файла фотографии должно быть видно под миниатюрой. Я создал обходной путь, но он показывает расширение. Я нашел примеры кода функций, но у меня нет идея, как включить их в существующий код. Любая помощь будет весьма признательна.
Ссылка для примера: http://www.kcis.org/kcisphotogallery.php?dir=Iris .Японский
Большое спасибо!
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
содержит имя файла без расширения
Для этого вы можете использовать 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'
?>
Если вы точно знаете, что расширение файла всегда будет состоять из четырех символов (например, ".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.