使用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)可能有用吗?