php获取目录中的所有文件 并将结果保存到数组中。
<?php
header("Content-type:text/html;charset=utf-8");
//该方法自动获取最新驱动名组成json数组
function latestFileNames($product_name, $driver_type = ['官方驱动', '第三方驱动', '医疗版驱动'], $keywords = ['', '', '']) {
$dirverDir = './drivers/';
$driverlinks="https://xxxx/download/drivers/";
// 获取当前目录下所有文件名
$files = scandir($dirverDir);
$result = [$product_name];
$driver_files = [];
foreach ($driver_type as $key => $driver) {
$latest_file_name = null;
// 筛选文件名,只选择包含设置的关键词的文件
$matched_files = [];
if (!empty($keywords[$key])) {
$matched_files = preg_grep('/' . $keywords[$key] . '/', $files);
}
if (count($matched_files)) {
$driver_files[$driver] = $matched_files;
// 比较文件更新时间
foreach ($matched_files as $file_name) {
if (empty($latest_file_name) || filemtime($file_name) > filemtime($latest_file_name)) {
$latest_file_name = $driverlinks.$file_name;
}
}
// 将驱动类型和对应的文件名组成一个小数组,并存入 $result 数组
$result[] = [$driver, $latest_file_name ?: ''];
} else {
// 没有找到该类型的驱动,将空值存入 $result 数组
$result[] = [$driver, ''];
}
}
// 获取最新更新的文件时间
$latest_time = 0;
foreach ($driver_files as $matched_files) {
foreach ($matched_files as $file_name) {
if (filemtime($dirverDir.$file_name) > $latest_time) {
$latest_time = filemtime($dirverDir.$file_name);
}
}
}
// 将最新更新的文件时间存入 $result 数组的结尾
$result[] = date('Ymd', $latest_time);
return $result;
}
//驱动类型参数
$driver_type = ['官方驱动', '第三方驱动', '医疗版驱动'];
//驱动类型参数
$driver_type2 = ['X4,X4DL(WIN10)', 'X4,X4DL(WIN7)', '早期7160芯片'];
//所匹配的驱动名称关键字
$keywords1 = ["CY3014.DV2008_YS","CY3014.CONFERENCE_YS","CY3014.MEDICAL_YS"];
$keywords2 = ["QP0203_YS","QP0203.CONFERENCE_YS","QP0203.MEDICAL_YS"];
$keywords3 = ["SC0700.DV2008.TC700","SC0700.DV2008.TC700.DIRECTSOUND.MEDICAL_YS","SC0700.DV2008.TC700.MEDICAL_YS"];
$keywords4 = ["SC0710_YS","SC0710.CONFERENCE_YS","SC0710.MEDICAL_YS"];
$keywords5 = ["SC0720_YS","SC0720.CONFERENCE_YS","SC0720.MEDICAL_YS"];
$keywords6 = ["DC1150.DV2008.SC360_YS","DC1150.CONFERENCE_YS","DC1150.DV2008_YS"];
$keywords7 = ["MZ0380_YS","MZ0380.CONFERENCE_YS","MZ0380.MEDICAL_YS"];
$keywords8 = ["TC.SD4000_YS","TC.SD4000.DIRECTSOUND_YS",""];
$keywords9 = ["TCHD-610N1","TCHD-610N2",""];
$keywords10 = ["QP0204_YS","QP0204.LIVECAP.MEDICAL_YS","QP0204.MEDICAL_YS"];
$keywords11 = ["X4-X4DL-WIN10","X4-X4DL-WIN7","SA7160_YS"];
//合并数组
$driversInfo = array_merge(
[latestFileNames('UB530驱动', $driver_type, $keywords1)],
[latestFileNames('540,542,5A0,739驱动', $driver_type, $keywords2)],
[latestFileNames('700系列驱动', $driver_type, $keywords3)],
[latestFileNames('710,400,410,749驱动', $driver_type, $keywords4)],
[latestFileNames('720驱动', $driver_type, $keywords5)],
[latestFileNames('UB652,TC360驱动', $driver_type, $keywords6)],
[latestFileNames('5C0,3C0,550,560,390驱动', $driver_type, $keywords7)],
[latestFileNames('300N1,4000SD,8000SD驱动', $driver_type, $keywords8)],
[latestFileNames('610系列驱动', $driver_type, $keywords9)],
[latestFileNames('UB5A0N4-H驱动', $driver_type, $keywords10)],
[latestFileNames('X4,X4DL系列驱动,早期7160芯片驱动', $driver_type2, $keywords11)],
);
//输出验证,直接访问https://xxxx/download/getDrivers.php验证
echo json_encode($driversInfo,320);
//将数据保存至drivers_list.txt便于官网抓取
$cacheUrl = __DIR__."/drivers/drivers_list.txt";
@file_put_contents($cacheUrl, json_encode($driversInfo,320));
本文作者:ZKCOI
文章名称:一个获取当前目录下所有文件并输出数组的方法
文章链接:https://www.zkcoi.com/365up/program/2639.html
本站资源仅供个人学习和交流,如若转载,请注明出处,详见《免责声明》。
微信扫一扫
支付宝扫一扫
