我想使用 PHP 获取目录中的第一个文件。
我正在尝试创建一个功能,让我网站上的用户可以更改他们的个人资料图片。为了在他们的个人资料页面上显示他们的个人资料图片,我想获取他们的个人资料图片文件夹中的第一张图片。我想获取他们上传的图像,无论文件类型如何。我已经做到了,因此当他们上传新图片时,旧图片将被删除,因此它只是文件夹中的一个文件。我该怎么做?
您可以像这样获取目录中的第一个文件
$directory = "path/to/file/";
$files = scandir ($directory);
$firstFile = $directory . $files[2];// because [0] = "." [1] = ".."
然后使用 fopen() 打开,您可以使用 w 或 w+ 模式:
w 仅供书写;将文件指针放在文件的开头 文件并将文件截断为零长度。如果文件没有 存在,尝试创建它。
$firstFile = scandir("path/to/file/")[2];
scandir:扫描给定目录并放入数组:[0] = "." [1] =“..”[2] =“第一个文件”
如果目录包含很多文件,那么使用 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 不返回排序结果,您可能需要将
break
替换为保证最新文件的检查。一种想法是向文件添加增量编号并检查最大编号。或者,您使用最新文件的名称创建一个子文件夹,并为添加到该文件夹的每个新文件删除/创建一个新子文件夹。