使用php查找并打开具有随机/未知名称的文件

使用php查找并打开具有随机/未知名称的文件,php,fopen,glob,opendir,Php,Fopen,Glob,Opendir,我在谷歌搜索了一种方法,可以打开并读取特定文件夹中具有特定扩展名的未知/随机名称的文件(它将是该文件夹中唯一的文件,但每小时都会更新一个新名称),但找不到任何内容。以前,该文件每次都有相同的名称,但不幸的是,现在它更改了 以前我只能这样定义它: $file = "/var/uploads/quarter.csv"; $handle = @fopen($file, "r"); 但是用一个随机的名字它就不起作用了 所以,我试过: function the_file($dir = '/var/up

我在谷歌搜索了一种方法,可以打开并读取特定文件夹中具有特定扩展名的未知/随机名称的文件(它将是该文件夹中唯一的文件,但每小时都会更新一个新名称),但找不到任何内容。以前,该文件每次都有相同的名称,但不幸的是,现在它更改了

以前我只能这样定义它:

$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
变量,因此您将无法在函数范围外使用它。另外,返回一个数组——如果只有一个文件,则只需获取数组的第一个元素并返回它,如下所示:

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 ...

$file
变量不存在于函数范围之外,因此您将无法在函数之外使用它。另外,返回一个数组——如果只有一个文件,则只需获取数组的第一个元素并返回它,如下所示:

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 ...

$file
变量不存在于函数范围之外,因此您将无法在函数之外使用它。另外,返回一个数组——如果只有一个文件,则只需获取数组的第一个元素并返回它,如下所示:

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 ...

$file
变量不存在于函数范围之外,因此您将无法在函数之外使用它。另外,返回一个数组——如果只有一个文件,则只需获取数组的第一个元素并返回它,如下所示:

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
来获取文件夹的内容。(见附件。)

$文件的内容将是:

Array
(
    [0] => .
    [1] => ..
    [2] => yourfile.csv
)
因此,您可以通过以下方式获取文件的全名:

$filename = $files1[2];

一个可能的解决方案可以是:

如果目录中只有一个文件,您可以执行
scandir
来获取文件夹的内容。(见附件。)

$文件的内容将是:

Array
(
    [0] => .
    [1] => ..
    [2] => yourfile.csv
)
因此,您可以通过以下方式获取文件的全名:

$filename = $files1[2];

一个可能的解决方案可以是:

如果目录中只有一个文件,您可以执行
scandir
来获取文件夹的内容。(见附件。)

$文件的内容将是:

Array
(
    [0] => .
    [1] => ..
    [2] => yourfile.csv
)
因此,您可以通过以下方式获取文件的全名:

$filename = $files1[2];

一个可能的解决方案可以是:

如果目录中只有一个文件,您可以执行
scandir
来获取文件夹的内容。(见附件。)

$文件的内容将是:

Array
(
    [0] => .
    [1] => ..
    [2] => yourfile.csv
)
因此,您可以通过以下方式获取文件的全名:

$filename = $files1[2];

尝试列出目录中的文件,然后一些常规表达式glob返回一个数组,如果您确定文件夹中只有1个文件,则使用
return$files[0]。它如何“不工作”?有错误信息吗?var_dump($files)可能有用吗?尝试列出目录中的文件,然后一些常规表达式glob返回一个数组,如果确定文件夹中只有一个文件,则使用
return$files[0]。它如何“不工作”?有错误信息吗?var_dump($files)可能有用吗?尝试列出目录中的文件,然后一些常规表达式glob返回一个数组,如果确定文件夹中只有一个文件,则使用
return$files[0]。它如何“不工作”?有错误信息吗?var_dump($files)可能有用吗?尝试列出目录中的文件,然后一些常规表达式glob返回一个数组,如果确定文件夹中只有一个文件,则使用
return$files[0]。它如何“不工作”?有错误信息吗?var_dump($files)可能有用吗?