因此,在您的帮助下,我已经能够组装下面。移动文件到目录
$dir = "./reporting/live-metrics/";
$des = "./reporting/historic-metrics/";
$ctime = time();
foreach (glob($dir."*") as $file) {
$live = file_get_contents($file);
if (strpos($live, 'CORO') === false && filemtime($file) < time() - 1 * 10) {
$exclude[] = $live;
$lines = file($file , FILE_IGNORE_NEW_LINES);
$lines[3] = 'Taken Down';
$lines[5] = $ctime;
file_put_contents($file , implode("\n", $lines));
if (!file_exists($des.basename($file).PHP_EOL)) {
mkdir($des.basename($file), 0777, true);
}
rename($file,$des.$ctime);
}
}
我的问题是,我试图将文件移动到创建的新目录,但我有一个小问题。无论我做什么,只能让它移动到$ des,我似乎无法将ti移动到为每个特定文件创建的动态目录。我假设它与我不使用重命名到正确参数的事实有关。下面是我试图让它重命名和移动的一些组合。
rename($file,$des.basename($file).PHP_EOL.$ctime); //doesn't move or rename
rename($file,$des.basename($file).$ctime); //adds to historic-metrics/ as jason1465519298
我也试过创建一个函数并设置重命名来调用它。例如。
$path = $des.basename($file).PHP_EOL;
rename($file,$path.$ctime);
目前该脚本是伟大的,直到移动文件。它会将它移动到./reporting/historic-metrics/,但我希望它移动到刚创建的目录。 EG,如果它是目前HANDELING文件名为“杰森”,那么它会创建./reporting/historic-metrics/Jason而是将文件移动到./reporting/historic-metrics/
编辑:源文件是罚款。它会将文件移动到以下目的地./reporting/historic-metrics/。我使用mkdir在这个例如./reporting/historic-metrics/Jason中创建一个文件夹,它基于它正在处理的文件。我正试图将文件移动到目标中的这个Jason文件夹中。我遇到的问题是$ des内的目标文件夹是动态的,并且基于它正在处理的文件进行更改。 –
还有权限和所有权吗? –
用图像更新原图,希望有更好的解释。 –