首页 > 解决方案 > 搜索 csv 文件名的特定部分并附加到新的 csv 文件(PHP)

问题描述

我想知道是否有办法找到 csv 文件名的特定部分并在编写新文件(另一个 CSV)时使用该特定部分。我在下面有一些代码:

$files = glob("C:\readonly\csvs\%.csv");
$filename = "C:\newcsvs\Dated_File.csv";

$newFile = fopen($filename, "w");
foreach($files as $file)
{
    if(($handle = fopen($file, "r")) !== FALSE)
    {
        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
        {
            fputcsv($newFile, [$data[0], $data[1]]);
        }
    }
    fclose($handle);
    fclose($newFile);
}

因此,假设我有一个文件名为 的 CSV,Johnson_report[2019-02-05]-[2019-02-15].csv并且我想获取结尾部分 [2019-02-15] 并在写入时将其附加到新的 CSV 我将如何去做?具体来说,我将制作的每个新 CSV 都必须采用文件的任何特定结束字符(它们将始终在特定日期范围内结束)并在新 CSV 的名称中使用该结束日期。我知道 glob 可以找到特定的模式,但我将如何以这种方式使用它?

标签: phpcsv

解决方案


感谢 Jeto,preg_match 和重命名函数就是答案。使用 preg_match 查找日期,然后在 foreach 循环中关闭文件后使用 rename 函数将每个匹配项附加到文件名。


推荐阅读