PDA

View Full Version : تاریخ به روز رسانی FTP



1developer
پنج شنبه 26 آذر 1388, 09:00 صبح
با سلام!
من می خواستم یه صفحه ایجاد کنم که به ftp مورد نظرم وصل بشه و آخرین تاریخ بروز رسانی در ftp را نشان بده. برای یک فایل مثلاexample.txt این کار را تونستم انجام بدم اما برای خود ftp که نشان بده آخرین فایل کی آپلود شده رو نتونستم بنویسم لطفا راهنمایی نمایید!:لبخندساده:

امیـرحسین
پنج شنبه 26 آذر 1388, 20:01 عصر
با همون تابعی که تاریخ یه فایل رو گرفتید (احتمالا fileatime)، تاریخ همه فایلهای یک فولدر رو بگیرید و جدیدترین مقدار میشه چیزی که میخواید. یه چیزی مثل این البته از تابعش مطمئن نیستم!
$file_time = array();
$dir = 'some/path/';
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
$file_time[$file] = fileatime($file);
}
closedir($dh);
}
}
asort($file_time);
$file_info = each($file_time);

echo $file_info['key'] . " : " . date("Y/m/d H:i", $file_info['value']);

1developer
پنج شنبه 26 آذر 1388, 20:21 عصر
این تابع برای تمام دایرکتوری ها یه تاریخ می نویسه!!!
شاید اشتباه از من باشه نمی دونم. به هر حال بازم متشکر. دارم یه چیزایی می نویسم. اگه به جایی رسید همین جا قرار می دم.

امیـرحسین
پنج شنبه 26 آذر 1388, 20:31 عصر
fileatime تاریخ آخرین دسترسی رو میده شاید واقعا آخرین دسترسی همه فایلها یکی باشه!
تابع filemtime رو هم تست کنید. این یکی تاریخ آخرین تغییراته.

1developer
پنج شنبه 26 آذر 1388, 22:10 عصر
یک چیزایی رو نوشتم و یه چیزای دیگه رو از مثال های موجود در سایت ها بدست آوردم تقریبا به اون چیزی که می خواستم رسیدم. فقط متاسفانه نمی دونم چطور میشه سال رو هم به نتایج اضافه کرد.
این کد از تابع ftp_rawlist استفاده می کنه که نام و تاریخ و اندازه فایل رو مشخص می کنه.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<?php
$ftp_server = "ftp.example.com";
$ftp_username = "root";
$ftp_password = "";
$dir = "/wp-admin";

// Connect to the server and log in
$ftpStream = ftp_connect($ftp_server)
or die("Could not connect to FTP server.");
$loginResult = ftp_login($ftpStream, $ftp_username, $ftp_password)
or die("Could not log in to FTP server.");

$regex = "^([^ ]+) +[^ ]+ +([^ ]+) +([^ ]+) +";
$regex .= "([^ ]+) +([^ ]+ +[^ ]+ +[^ ]+) +(.+)$";

// Get the array of files
$files_array = ftp_rawlist($ftpStream, $dir);
each ($files_array);
// Print out the page and table headers
print "<h1 align=\"center\">Files in directory '$dir' on '$ftp_server'</h1>\n";
print "<table border=\"0\" cellspacing=\"0\" ";
print "cellpadding=\"2\" align=\"center\">";
print "<tr><th>Filename</th><th>Timestamp</th>";
print "<th>Size (bytes)</th>";

for ($i=0; $i < count($files_array); $i++) {
if ($i % 2 == 0)
$bgcolor = "bgcolor=\"#cccccc\"";
else
$bgcolor = "bgcolor=\"#ffffff\"";

ereg($regex, $files_array[$i], $file_info);

print "<b><tr><td $bgcolor>$file_info[6]</td></b>";
print "<B><td $bgcolor>$file_info[5]</td></b>";
print " <b><td $bgcolor> $file_info[4]</td><b>";
print "</tr>\n";
}
print "</table>";
ftp_quit($ftpStream);
?>
</body>
</html>