我目前有一个程序连接到ftp目录,如果它找到csv文件,运行一个脚本,然后在脚本运行文件后,它会创建一个带有日期的备份文件夹并将csv文件移动到这个新创建的备份文件夹位于ftp目录中。
但是,如果根目录中没有csv文件,我不希望创建备份文件夹,因为没有要移动的文件。我知道解决方案可能非常简单,但我似乎无法弄明白!
logMessage("Creating backups");
$ftp_connection = @ftp_connect($ftp_url, $ftp_port, 6000);
if(!@ftp_login($ftp_connection, $ftp_username, $ftp_password )) {
logMessage("Could not connect to FTP: [$ftp_url], with Username: [$ftp_username], and Password: [$ftp_password]");
die();
}
$date = date('Y_m_d_(His)');
$newBackup = $ftp_root."/".$ftp_backup."backup_$date";
if (ftp_mkdir($ftp_connection, $newBackup)) {
logMessage ("Successfully created [$newBackup\n]");
foreach($filesToProcess as $file){
$pathData = pathinfo($file);
if(isset($pathData['extension']) && $pathData['extension'] == 'csv'){
if(!@ftp_rename($ftp_connection,
$ftp_root.'/'.$file,
$newBackup."/".$file)
){
logMessage("Unable to move file: $file")
}
}
}
}
答案 0 :(得分:2)
你已经使用了foreach($ filesToProcess作为$ file),因此在$ filesToProcess中它是文件数组。你可以使用,count($ filesToProcess)首先计算文件数,然后如果count> 0执行代码。
答案 1 :(得分:0)
// $csv = your checks for string ending to .csv
$ftp_files = ftp_nlist($ftp_connection, ".");
foreach ($ftp_files = $files) {
if ($files = $csv) {
// makedir
在非常基本的语法中可能是这样的。 ftp_nlist返回特定目录中所有文件的数组。