我已经在谷歌上搜索了一种打开和读取具有特定扩展名的特定文件夹中具有未知/随机名称的文件的方法(它将是该文件夹中唯一的文件,但它每小时都会更新一次新名称),但找不到任何东西。以前,不幸的是,每次文件都具有相同的名称,现在它发生了变化...
以前我只需要这样定义它:
$file = "/var/uploads/quarter.csv";
$handle = @fopen($file, "r");
但是使用随机名称它不再起作用。
所以,我试过:
function the_file($dir = '/var/uploads/') {
$files = glob($dir . '/*.csv');
$file = $files;
}
$handle = @fopen($file, "r");
脚本继续...
但它不起作用。任何帮助将不胜感激,谢谢。
$file
变量在函数范围之外不存在,因此您将无法在函数之外使用它。此外,glob()
返回一个数组 - 如果只有一个文件,你可以只获取数组的第一个元素并返回它,如下所示:
function the_file($dir = '/var/uploads/') {
$files = glob($dir . '/*.csv');
return $files[0]; // return the first filename
}
现在要将其存储在变量中,您可以执行以下操作:
$file = the_file(); // or specify a directory
# code ...
一个可能的解决方案可以是:
如果目录中只有一个文件,则可以执行scandir
来获取文件夹的内容。(参见 PHP 参考)
$dir = 'your_folder_name';
$files1 = scandir($dir);
$files
的内容将是:
Array
(
[0] => .
[1] => ..
[2] => yourfile.csv
)
因此,您可以使用以下命令获取文件的全名:
$filename = $files1[2];