2011-10-06 127 views
3

我正在为网站编写代码,上传图片并显示图片样式。我想要做的是将图像的文件名作为图像的名称输入到网站的数据库中。然而,只使用$_FILES['images']['name'];给我的文件名称,但最后附带的文件扩展名。如何删除文件扩展名,以便我自己使用文件名?删除文件上传的文件扩展名

+2

你认为扩展名是什么部分?第一个点之前的所有内容?那么'some.name.tar.zip'是一个有效的名字呢?是'.zip'的扩展名和'some.name.tar'的名字,或者是'some'的名字和'name.tar.zip'的扩展名?在现实中,你应该把扩展名作为名字的一部分,这样当你如何得到某人的名字时,他们可以识别文件类型。 –

回答

5

您可以使用pathinfo()函数(docs)。

$example = "my_file.jpeg"; 
$filename = pathinfo($example, PATHINFO_FILENAME); 
echo $filename; // my_file 
0

只需使用的preg_replace:

$name = preg_replace('/(.+)\.\w+$/U', $_FILES['images']['name'], '$1'); 
0

正如我上面的评论暗示,这取决于你在文件名中考虑什么作为名称和扩展名是什么。

一切到最后一个点:

$filename = 'some.file.name.zip'; 
$name = substr($filename, 0, strrpos($filename, '.')); 

一切到第一点:

$filename = 'some.file.name.zip'; 
$name = substr($filename, 0, strpos($filename, '.')); 

它们看起来是一样的,但第一个查找从结束第一点字符串和字符串开头的第二个字符串。