我有一个脚本可以将CSV文件放入一个临时文件夹中,直到另一个脚本选择将其导入我的数据库。这是一个单独的脚本,由于各种原因无法同时放置到临时文件夹和连续数据库导入。
由于我现在有一个单独的导入脚本,我首先需要扫描temp文件夹并查找import-file,它仍然是文件夹中唯一的文件,但是有一个不断变化的文件名,我无法预先定义。我现在的问题是,如何获取所述文件的文件名,将其分配给变量并稍后将其用于数据库导入?
当使用foreach()
循环时,我最终得到一个数组,但是想要一个字符串以供进一步使用。
PHP
if(file_exists('./'.$temp)) {
$files = scandir('./'.$temp.'/');
foreach ($files as $attachment) {
if (in_array($attachment, array(".",".."))) continue;
$import_file = $attachment;
}
} else {
die("Temp Folder for $temp could not be found, hence no files exist for import. Operation cancelled.");
}
答案 0 :(得分:2)
由于scandir
按字母顺序排序(http://php.net/manual/en/function.scandir.php),因此您的文件将始终位于scandir
数组的末尾(在非unix系统上,它是唯一的文件,在unix上) .
和..
之后的系统。
因此,您只需要获取数组的最后一项,如下所示:
$s = scandir("./".$temp."/");
$import_file = $s[count($s)-1];
此代码会自动检索temp
文件夹中第三个文件的名称,只要其中有否其他文件,它就可以正常运行。