我有这样的代码,每天早上12点运行。它目前只能用于使用ftp_mdtm
(修改时间)获取服务器中的最新文件。我面临的问题是,有时服务器将超过1个文件上传到服务器。我怎样才能下载当天的所有最新文件?我目前使用ftp_get
。如何在PHP中使用ftp_get下载超过1个文件
<?php
$conn = ftp_connect('abc.com');
ftp_login($conn, 'lalala', '12345');
// get list of files on given path
$files = ftp_nlist($conn, '');
$mostRecent = array(
'time' => 0,
'file' => null
);
foreach ($files as $file) {
// get the last modified time for the file
$time = ftp_mdtm($conn, $file);
if ($time > $mostRecent['time']) {
// this file is the most recent so far
$mostRecent['time'] = $time;
$mostRecent['file'] = $file;
}
}
ftp_get($conn, "$file.zip", $mostRecent['file'], FTP_BINARY);
ftp_close($conn);
$file_open= $file . ".zip";
$path = "./zip/";
$zip = new ZipArchive;
$res = $zip->open($file_open);
if ($res === true) {
// extract it to the path we determined above
$zip->extractTo($path);
$zip->close();
//echo "$file_open extracted to $path";
} else {
//echo "I couldn't open $file_open";
}
$servername = "localhost"; //server IP or name
$uname = "lalala"; //username
$pword = ""; //password
$dbname = "lalala"; //database name
$db = new mysqli($servername, $uname, $pword, $dbname);
// Check connection
if ($db->connect_error) {
die("Connection failed: " . $db->connect_error);
}
//print_r (glob("test/*.txt"));
//exit();
foreach (glob($path . "/*.TXT") as $file) {
$file_handle = fopen($file, "r");
while (!feof($file_handle)) {
$line = fgets($file_handle);
$new_file = substr($file, 7);
//echo $line;
$query_check = "SELECT filename FROM fos_data WHERE filename = '$new_file'";
$result=mysqli_query($db,$query_check);
$row = mysqli_fetch_assoc($result);
$exist = $row['filename'] . "<br>";
$rowcount=mysqli_num_rows($result);
if ($rowcount > 0) {
$update = " UPDATE fos_data
SET value = '$line'
WHERE filename = '$new_file'";
$result=mysqli_query($db,$update);
echo "Data " . $new_file . " Updated <br>";
}
else{
$insert = "INSERT INTO fos_data
(filename,
value)
VALUES
('$new_file',
'$line')";
$result=mysqli_query($db,$insert);
echo "Data " . $new_file . " Saved <br>";
}
/**/
}
fclose($file_handle);
}
mysqli_close($db);
?>
谢谢,我来试试,第一 –