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));
本文作者:𝙕𝙆𝘾𝙊𝙄
文章名称:一个获取当前目录下所有文件并输出数组的方法
文章链接:https://www.zkcoi.com/365up/program/2639.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。