上传文件时如何去掉文件扩展名

3

我正在编写一个上传图片并以画廊形式显示的网站的代码。我希望将图像的文件名作为图像的名称输入到网站的数据库中。然而,仅使用$_FILES ['images'] ['name'];会给我带上文件扩展名的文件名。如何删除文件扩展名,以便我可以仅使用文件名?


2
你认为文件名的哪一部分是扩展名?第一个点之前的所有内容?那么some.name.tar.zip这个有效的文件名中,.zip是扩展名,而some.name.tar是文件名吗?还是some是文件名,name.tar.zip是扩展名?实际上,你应该将扩展名包含在文件名中,这样当你向别人展示文件名时,他们可以识别出文件类型。 - Jonathan Kuhn
4个回答

7
你可以使用pathinfo()函数(文档)来实现。
$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, '.'));

它们看起来一样,但第一个从字符串末尾开始查找第一个点,而第二个从字符串开头开始查找。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接