PHP,获取没有文件扩展名的文件名

新手上路,请多包涵

我有这个 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 没有扩展名。

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

原文由 Mostafa Elkady 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 418
2 个回答

不需要这一切。查看 pathinfo() ,它为您提供了路径的所有组件。

手册中的示例:

 $path_parts = pathinfo('/www/htdocs/index.html');

echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n"; // filename is only since PHP 5.2.0

代码输出:

 /www/htdocs
index.html
html
index

或者,您只能获得某些部分,例如:

 echo pathinfo('/www/htdocs/index.html', PATHINFO_EXTENSION); // outputs html

原文由 anon 发布,翻译遵循 CC BY-SA 3.0 许可协议

从文件中提取的文件扩展名:

 File Name = subrotobiswas.jpg
$fileExtension = pathinfo($_FILES["fileToUpload"]["name"], PATHINFO_EXTENSION); //Output: jpg
$newNameOfFileWithoutExtension = basename( $_FILES["fileToUpload"]["name"], $fileExtension ); //Output: subrotobiswas
$fullFileName = $newNameOfFileWithoutExtension . "." .$fileExtension; // Output: subrotobiswas.jpg

原文由 Subroto Biswas 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题