webForumDet fria alternativet

Kolla senast uppdaterad datumet på den senast uppdaterade filen i en mapp på en ftp s

PHP

3 svar · 167 visningar · startad av Alpha II

Medlem sedan maj 20002 993 inlägg
Frågan#1

Hur kollar jag senastuppdaterad datumet på den senastuppdaterade filen i en mapp på en ftp server? just nu använder jag följande kod för att kolla senastuppdaterad datumet på en angiven fil.

function CheckMTime($host, $port, $username, $password, $file) {
	$ftp = ftp_connect($host, $port); // (HOST, PORT)
	if(!$ftp)
	     return 0;
	if(!ftp_login($ftp, $username, $password)) // (POINTER, USER, PASSWORD)
	     return 0;
	if(!$tid = ftp_mdtm($ftp, $file)) // (POINTER, FILE)
	     return 0;
	ftp_quit($ftp);

	// Skriv ut tiden i formatet Dag Månad, År - Timme:Minut
	return $tid;
}

------------------
I have not failed. I´ve just found 10.000 ways that won´t work. // Thomas Edison

Medlem sedan mars 20007 896 inlägg
#2

Då blir du nog tvungen att loopa igenom alla filer i FTP katalogen, spara tiden och jämföra med kommande filer. Om nästa fil har ett tidigare/senare värde sparar du filens namn i en variabel.

Det finns nämligen ingen funktion för att jämföra olika filer i en FTP katalog.

------------------
SPiN, bjorne.w@telia.com

-- They pretend to pay me, I pretend to work --

Medlem sedan maj 20002 993 inlägg
#3

Jag vet. Jag har även försökt som du sa utan nån vidare framgång :(

------------------
I have not failed. I´ve just found 10.000 ways that won´t work. // Thomas Edison

Medlem sedan mars 20007 896 inlägg
#4

Utan framgång?

Testa detta :)

<?php
function CheckMTime($host, $port, $username, $password) {
     $ftp = ftp_connect($host, $port);
     if(!$ftp)
          return 0;
     if(!ftp_login($ftp, $username, $password))
          return 0;

     if(!$directory = ftp_pwd($ftp))
          return 0;
     $arrFiles = ftp_nlist($ftp, $directory);
     if(!is_array($arrFiles))
          return 0;
     for($i = 0; $i < count($arrFiles); $i++) {
          if($tid < ftp_mdtm($ftp, $arrFiles[$i])) {
               $tid = ftp_mdtm($ftp, $arrFiles[$i]);
               $fil = $arrFiles[$i];
          }
     }
     ftp_quit($ftp);
     return $tid;
     /* För att returnera filnamnet */
     #return $fil;
}

Helt otestat, säg gärna till om det funkar :)

------------------
SPiN, bjorne.w@telia.com

-- They pretend to pay me, I pretend to work --

249 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)