PHP - 在没有foreach()的文件夹中选择ONLY文件?

时间:2017-02-10 07:19:05

标签: php

我有一个脚本可以将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.");
}

1 个答案:

答案 0 :(得分:2)

由于scandir按字母顺序排序(http://php.net/manual/en/function.scandir.php),因此您的文件将始终位于scandir数组的末尾(在非unix系统上,它是唯一的文件,在unix上) ...之后的系统。

因此,您只需要获取数组的最后一项,如下所示:

$s = scandir("./".$temp."/");
$import_file = $s[count($s)-1];

此代码会自动检索temp文件夹中第三个文件的名称,只要其中有其他文件,它就可以正常运行。