如果我只有文件名,如何在 PHP 中获取文件扩展名?

How do I get a File Extension in PHP if I only have the File Name?

我有图像文件的路径 /files/uploads/1 但是如您所见,我没有扩展名所以无法显示图像。如何获得文件的扩展名以便显示它?谢谢!

编辑:这是我试过的代码。 BMP、PNG、JPG、JPEG 和 GIF 是唯一可能的扩展名,但 $path 最终永远不会被赋值。

$exts = array('bmp','png','jpg','jpeg','gif');
foreach ($exts as $ext) {
    if (file_exists("/files/uploads/" . $id . "." . $ext)) {
        $path = "/files/uploads/" . $id . "." . $ext;
    }
}

就我个人而言,我在 file_exists 检查的路径之前遇到了一个不必要的斜线 (/),但问题的解决方案仍然相同。

$exts = array('bmp','png','jpg','jpeg','gif','swf','psd','tiff','jpc','jp2','jpx','jb2','swc','iff','wbmp','xbm','ico');
foreach ($exts as $ext) {
    if (file_exists("files/uploads/" . $id . "." . $ext)) {
        $path = "/files/uploads/" . $id . "." . $ext;
    }
}

您不需要文件扩展名来显示图像。

<img src="/files/uploads/1">

将显示图像。这与 placehold.it 图片的工作方式相同

<img src="http://placehold.it/350x150">

首先,我认为当您获得图像的文件名时意味着无需添加扩展名,因此您拥有文件名和图像文件夹

它应该看起来像这样:

$fullpath = ('uploadword/'.$filename);
// then call it 
<img  src='".$fullpath."'> 

正常情况下上传特定文件夹中的所有图像然后获取文件名并将其保存在数据库中

move_uploaded_file($file_tmp,"upload/".$filename);

一些专业人士使文件名唯一变得更加复杂,因为他们期望一些重复值和许多原因,这里是一个简单的技术:

$anynameorfunction = "";// random number etc...
$newname = $anynameorfunction.$filename;
move_uploaded_file($file_tmp,"upload/".$newname);

所以,当他们再次调用它时,应该像这样简单

  $fullpath = ('uploadword/'.$newname);
 // then call it 
  <img  src='".$newname."'> 

这是非常简单的方式,我希望你明白我的意思