remove extension from file [duplicate]

2019-03-24 22:09发布

Possible Duplicate:
How remove extension from string (only real extension!)

I am brand new to php and have a lot to learn! I'm experimenting with MiniGal Nano for our King County Iris Society website. It work quite well for our purposes with one small exception: the photo file name needs to be visible under the thumbnail. I've created a work around, but it shows the extension. I've found code samples of functions but have no idea how to incorporate them into the existing code. Any assistance would be greatly appreciated.

Example link: http://www.kcis.org/kcisphotogallery.php?dir=Iris.Japanese

Many thanks!

3条回答
一纸荒年 Trace。
2楼-- · 2019-03-24 22:27

There are a few ways to do it, but i think one of the quicker ways is the following

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

Another solution is this. I haven't tested it, but it looks like it should work for multiple periods in a filename

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

Also:

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

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

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

In all of these, $name contains the filename without the extension

查看更多
相关推荐>>
3楼-- · 2019-03-24 22:32

If you know for certain that the file extension is always going to be four characters long (e.g. ".jpg"), you can simply use substr() where you output the filename:

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

If there's a chance that there will be images with more or less characters in the file extension (e.g. ".jpeg"), you will need to find out where the last period is. Since you're outputting the filename from the first character, that period's position can be used to indicate the number of characters you want to display:

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

For information about these functions, check out the PHP manual at http://php.net/substr and http://php.net/strrpos.

查看更多
该账号已被封号
4楼-- · 2019-03-24 22:35

You can use pathinfo() for that.

<?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'

?>
查看更多
登录 后发表回答