当文件名未知时,使用 PHP 访问图像


Access image with PHP when the file name is unknown

如果我不知道它的名字,我怎么能使用PHP来获得image

说明:当用户将图像上传到服务器时,图像的名称如下:user_id_timestamp.jpg 。现在我想访问这张图片,但我只知道它名字的一半:<img src="user_id_*.jpg"/>*部分是unknown.感谢您的帮助。

我想你在寻找glob()

所以你可以做这样的事情:

<?php
    $userId = 234567865;
    foreach (glob($userId . "_*.jpg") as $filename)
        echo "$filename size " . filesize($filename) . "<br />";
?>

示例输出可以是:

234567865_1418760613.jpg size 879394

编辑:

如果要在找到图像时停止脚本,可以使用以下命令:

<?php
    $userId = 234567865;
    $pattern = $userId . "_*.jpg";
    foreach (glob($pattern) as $filename) {
        if (strpos($filename, $userId) !== true) {
            echo "User: $userId File: $filename";
            break;
        }
    }
?>

示例输出可以是:

User: 234567865 File: 234567865_1418760151.jpg

如果您有来自同一用户的多个文件,并且想要具有最新时间戳的图像,请使用以下命令:

<?php
    $userId = 234567865;
    $pattern = $userId . "_*.jpg";
    $last = 0;
    $newest = 0;
    foreach (glob($pattern) as $filename) {
        if(substr($filename, strpos($filename, "_") + 1) > $last)
            $newest = $filename;
        $last = substr($filename, strpos($filename, "_") + 1);
    }
    echo "The newest avatar image from user: $userId is: $newest";
?>

示例输出可以是:

The newest avatar image from user: 234567865 is: 234567865_1418760151.jpg

有关详细信息,请参阅:http://php.net/manual/en/function.glob.php