我想使用PHP从目录中获取第一个文件。
我正在尝试创建一个函数,使网站上的用户可以更改其个人资料图片。为了在他们的个人资料页面上显示他们的个人资料图片,我想要获取他们个人资料图片文件夹中的第一张图片。我想要获取他们上传的图片,而不管文件类型如何。我已经做到了当他们上传新图片时旧图片将被删除,所以文件夹中只有一个文件。怎么做呢?
我想使用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] = "第一个文件"
scandir
中排在第一位,使得列表中的第一个“正常”文件成为第三个。 - David Amey如果目录含有更多的文件,使用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
替换为检查最新文件的保证。一种想法是为文件添加递增编号并检查最高编号。或者,您可以创建一个名为最新文件名的子文件夹,并为添加到文件夹中的每个新文件删除/创建一个新的子文件夹。
最初的回答: