获取目录 PHP 中的第一个文件

Get first file in directory PHP

我想使用 PHP.

获取目录中的第一个文件

我正在尝试创建一个功能,让我网站上的用户可以更改他们的个人资料图片。要在他们的个人资料页面上显示他们的个人资料图片,我想在他们的个人资料图片文件夹中获取第一张图片。无论文件类型如何,我都想获取他们上传的图像。我已经做到了,当他们上传一张新图片时,旧图片将被删除,所以它只是文件夹中的一个文件。我该怎么做?

您可以在这样的目录中获取第一个文件

$directory = "path/to/file/";
$files = scandir ($directory);
$firstFile = $directory . $files[2];// because [0] = "." [1] = ".." 

然后用fopen()打开你可以使用w或w+模式:

w Open for writing only; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist, attempt to create it.

$firstFile = scandir("path/to/file/")[2];

scandir:扫描给定目录并放入数组:[0] = "." [1] = ".." [2] = "First File"

随着目录包含的文件越来越多,使用 readdir() 应该会更快,因为我们不会将所有文件写入一个数组:

if ($h = opendir($dir)) {
    while (($file = readdir($h)) !== false) {
        if ($file != '.' && $file != '..') {
            break;
        }
    }
    closedir($h);
}
echo "The first file in $dir is $file";

但由于 readdir does not return a sorted result,您可能需要将 break 替换为保证最新文件的检查。一种想法是为您的文件添加增量编号并检查最高编号。或者,您使用最新文件的名称创建一个子文件夹,remove/create 为每个添加到该文件夹​​的新文件创建一个新的子文件夹。