【问题标题】:Find a file with unknown extension查找扩展名未知的文件
【发布时间】:2011-12-09 16:29:21
【问题描述】:

我在我的目录中找到了一些图像,它们的名称中有 id。我知道 id ,但我不知道它们的格式,所以我不能使用 href 来显示它们,因为我不知道格式。

我需要一个想法或功能,以便我可以搜索:

fe。 href="img/avatar/avatar_of_" . $id . ".EXT"

如果找到带有图片扩展名的文件,就会显示它。

【问题讨论】:

    标签: php file search


    【解决方案1】:

    嗯,你可以使用file_exists 来检查文件是否在那里。

    构建一个“图像扩展”数组并找出文件存在于哪个。

    $exts = array('bmp','png','jpg');
    foreach($exts as $ext) {
        if(file_exists("img/avatar/avatar_of_" . $id . "." . $ext)){
            $path = "img/avatar/avatar_of_" . $id . "." . $ext;
        }
    }
    

    或者,您可以重命名文件并将其转换为通用扩展名。

    或者,您可以在某处存储任何给定用户头像的扩展名。

    【讨论】:

    • 谢谢,好昵称顺便说一句。 :p
    【解决方案2】:

    我不知道这是你想要的:

    if(file_exists("img/avatar/avatar_of_" . $id . ".jpg")) {
        // display
    }
    

    或者也许:

    foreach (glob("img/avatar/avatar_of_$id.*") as $filename) {
        //display
    }
    

    【讨论】:

      【解决方案3】:

      glob 适合您吗?它允许您进行通配符搜索。

      【讨论】:

      • 我宁愿考虑 preg_math - 搜索格式为 (PNG|JPG|JPEG|GIF) 的图像,如果找到 - 添加分机。到变量,然后我可以准备图像href。
      • glob("{*.PNG,*.JPG,*.JPEG,*.GIF}", GLOB_BRACE)
      • var_dump(glob("./img/avatar/avatar_of_" . $id . ".*")); ,为什么它返回空数组?文件在那里...
      猜你喜欢
      • 1970-01-01
      • 2020-03-29
      • 2020-02-16
      • 1970-01-01
      • 2010-09-13
      • 2017-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多