我有以下PHP代码:
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
。
该文件只是一个变量中的字符串。
发布于 2013-09-27 07:20:23
https://php.net/manual/en/function.pathinfo.php
pathinfo($path, PATHINFO_FILENAME);
简单的功能测试:https://ideone.com/POhIDC
发布于 2014-03-21 10:13:07
另一种方法是使用正则表达式。
$fileName = basename($filePath);
$fileNameNoExtension = preg_replace("/\.[^.]+$/", "", $fileName);
这将删除从最后一个句号.
到字符串末尾的内容。
发布于 2015-06-04 21:18:36
如果扩展名未知,请使用以下解决方案
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"
https://stackoverflow.com/questions/2183486
复制相似问题