我在Google周围搜索了一种方法,以便在具有特定扩展名的特定文件夹中读取具有未知/随机名称的文件(它将是该文件夹中的唯一文件,但它每小时更新一次一个新的名字),但找不到任何东西。以前该文件每次都有相同的名称,但现在它改变了......
以前我只能这样定义:
$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");
脚本继续......
但它不起作用。任何帮助将不胜感激,谢谢。
答案 0 :(得分:3)
$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 ...
答案 1 :(得分:0)
可能的解决方案是:
如果目录中只有一个文件,您可以执行scandir
来获取该文件夹的内容。 (见PHP ref。)
$dir = 'your_folder_name';
$files1 = scandir($dir);
$files
的内容将是:
Array
(
[0] => .
[1] => ..
[2] => yourfile.csv
)
因此,您可以使用以下命令获取文件的全名:
$filename = $files1[2];