首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP,获取不带文件扩展名的文件名

PHP,获取不带文件扩展名的文件名
EN

Stack Overflow用户
提问于 2010-02-02 19:10:29
回答 14查看 324.4K关注 0票数 230

我有以下PHP代码:

代码语言:javascript
复制
function ShowFileExtension($filepath)
{
    preg_match('/[^?]*/', $filepath, $matches);
    $string = $matches[0];

    $pattern = preg_split('/\./', $string, -1, PREG_SPLIT_OFFSET_CAPTURE);

    if(count($pattern) > 1)
    {
        $filenamepart = $pattern[count($pattern)-1][0];
        preg_match('/[^?]*/', $filenamepart, $matches);
        return strtolower($matches[0]);
    }
}

如果我有一个名为my.zip的文件,此函数将返回.zip

我想反其道而行之,我希望函数返回不带扩展名的my

该文件只是一个变量中的字符串。

EN

回答 14

Stack Overflow用户

发布于 2013-09-27 07:20:23

https://php.net/manual/en/function.pathinfo.php

代码语言:javascript
复制
pathinfo($path, PATHINFO_FILENAME);

简单的功能测试:https://ideone.com/POhIDC

票数 99
EN

Stack Overflow用户

发布于 2014-03-21 10:13:07

另一种方法是使用正则表达式。

代码语言:javascript
复制
$fileName = basename($filePath);
$fileNameNoExtension = preg_replace("/\.[^.]+$/", "", $fileName);

这将删除从最后一个句号.到字符串末尾的内容。

票数 15
EN

Stack Overflow用户

发布于 2015-06-04 21:18:36

如果扩展名未知,请使用以下解决方案

代码语言:javascript
复制
 pathinfo('D:/dir1/dir2/fname', PATHINFO_FILENAME); // return "fname"
 pathinfo('D:/dir1/dir2/fname.php', PATHINFO_FILENAME); // return "fname"
 pathinfo('D:/dir1/dir2/fname.jpg', PATHINFO_FILENAME); // return "fname"

 pathinfo('D:/dir1/dir2/fname.jpg', PATHINFO_DIRNAME) . '/' . pathinfo('D:/dir1/dir2/fname.jpg', PATHINFO_FILENAME); // return "D:/dir1/dir2/fname"

PHP MAN function pathinfo

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2183486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档