php 随机指定文件夹内的一个文件,并返回文件名称
时间:2023年10月04日
/来源:网络
/编辑:佚名
可以随机获取指定目录下一个文件名的 PHP 函数:
function getRandomFileName($dir) {
// 获取目录下所有文件
$files = glob($dir . '/*.*');
if (empty($files)) {
return null;
}
// 随机选择一个文件
$file = $files[array_rand($files)];
// 返回文件名
return basename($file);
}
该函数接受一个参数 $dir,表示要随机选择文件的目录路径。函数首先使用 glob() 函数来获取指定目录下所有文件的文件路径,然后使用 array_rand() 函数从中随机选择一个文件。最后,函数使用 basename() 函数获取选中文件的文件名,并返回。
如果指定目录下没有文件,则该函数会返回 null。
你可以通过以下方式调用该函数:
$dir = '/path/to/files';
$filename = getRandomFileName($dir);
if ($filename !== null) {
echo $filename;
} else {
echo '指定目录下没有文件。';
}
其中,/path/to/files 是要随机选择文件的目录路径。调用函数后,函数会随机选择一个文件并返回其文件名。如果指定目录下没有文件,则函数会返回 null。
二次需求
我想一次性返回多个文件名!
function getRandomFileNames($dir, $num) {
// 获取目录下所有文件
$files = glob($dir . '/*.*');
if (empty($files)) {
return null;
}
$count = count($files);
// 如果文件数量不足 $num,则直接返回所有文件名
if ($count <= $num) {
$fileNames = array_map('basename', $files);
return $fileNames;
}
// 随机选择 $num 个文件
$randomIndexes = array_rand($files, $num);
// 获取选中文件的文件名
$fileNames = array();
foreach ($randomIndexes as $index) {
$fileNames[] = basename($files[$index]);
}
return $fileNames;
}
该函数接受两个参数,分别是目录路径 $dir 和要获取的文件数量 $num。如果目录下没有任何文件,则返回 null。如果文件数量不足 $num,则直接返回目录下所有文件的文件名。
如果文件数量足够,则从所有文件中随机选择 $num 个文件,然后将选中文件的文件名放入一个数组中返回。
你可以通过以下方式调用该函数:
$dir = '/path/to/directory';
$num = 3;
$fileNames = getRandomFileNames($dir, $num);
print_r($fileNames);
其中,$dir 是目录路径,$num 是要获取的文件数量。函数将返回一个包含随机获取的文件名的数组。
function getRandomFileName($dir) {
// 获取目录下所有文件
$files = glob($dir . '/*.*');
if (empty($files)) {
return null;
}
// 随机选择一个文件
$file = $files[array_rand($files)];
// 返回文件名
return basename($file);
}
该函数接受一个参数 $dir,表示要随机选择文件的目录路径。函数首先使用 glob() 函数来获取指定目录下所有文件的文件路径,然后使用 array_rand() 函数从中随机选择一个文件。最后,函数使用 basename() 函数获取选中文件的文件名,并返回。
如果指定目录下没有文件,则该函数会返回 null。
你可以通过以下方式调用该函数:
$dir = '/path/to/files';
$filename = getRandomFileName($dir);
if ($filename !== null) {
echo $filename;
} else {
echo '指定目录下没有文件。';
}
其中,/path/to/files 是要随机选择文件的目录路径。调用函数后,函数会随机选择一个文件并返回其文件名。如果指定目录下没有文件,则函数会返回 null。
二次需求
我想一次性返回多个文件名!
function getRandomFileNames($dir, $num) {
// 获取目录下所有文件
$files = glob($dir . '/*.*');
if (empty($files)) {
return null;
}
$count = count($files);
// 如果文件数量不足 $num,则直接返回所有文件名
if ($count <= $num) {
$fileNames = array_map('basename', $files);
return $fileNames;
}
// 随机选择 $num 个文件
$randomIndexes = array_rand($files, $num);
// 获取选中文件的文件名
$fileNames = array();
foreach ($randomIndexes as $index) {
$fileNames[] = basename($files[$index]);
}
return $fileNames;
}
该函数接受两个参数,分别是目录路径 $dir 和要获取的文件数量 $num。如果目录下没有任何文件,则返回 null。如果文件数量不足 $num,则直接返回目录下所有文件的文件名。
如果文件数量足够,则从所有文件中随机选择 $num 个文件,然后将选中文件的文件名放入一个数组中返回。
你可以通过以下方式调用该函数:
$dir = '/path/to/directory';
$num = 3;
$fileNames = getRandomFileNames($dir, $num);
print_r($fileNames);
其中,$dir 是目录路径,$num 是要获取的文件数量。函数将返回一个包含随机获取的文件名的数组。
新闻资讯 更多
- 【建站知识】查询nginx日志状态码大于400的请求并打印整行04-03
- 【建站知识】Python中的logger和handler到底是个什么?04-03
- 【建站知识】python3拉勾网爬虫之(您操作太频繁,请稍后访问)04-03
- 【建站知识】xpath 获取meta里的keywords及description的方法04-03
- 【建站知识】python向上取整以50为界04-03
- 【建站知识】scrapy xpath遇见乱码解决04-03
- 【建站知识】scrapy爬取后中文乱码,解决word转为html 时cp1252编码问题04-03
- 【建站知识】scrapy采集—爬取中文乱码,gb2312转为utf-804-03