2017-11-28 3 views
1

Dynamisch Ich erstelle Unterverzeichnis in einem Ordner, und ich muss das zuletzt erstellte Verzeichnis in einem Stachelformat abrufen, ich habe viele Möglichkeiten versucht, aber es nicht bekommen. Was ich versucht habe ist,Wie bekomme ich das zuletzt erstellte Verzeichnis in PHP?

$path = "/path/to/my/dir"; 
$latest_ctime = 0; 
$latest_filename = ''; 
$d = dir($path); 
while (false !== ($entry = $d->read())) { 
$filepath = "{$path}/{$entry}"; 
if (is_file($filepath) && filectime($filepath) > $latest_ctime) { 
$latest_ctime = filectime($filepath); 
$latest_filename = $entry; 
} 
} 

Aber es funktioniert nur für Datei. Vielen Dank im Voraus.

+0

und $ Pfad ist volle URL für meine Arbeit, weil es eine andere Subdomain ist. –

+0

Ich habe versucht, aber es funktioniert auch nicht mit is_dir() –

+0

Also, wenn ich URL verwenden, wie kann ich das bekommen? neben Subdomain-Verzeichnis ist in meinem Home-Verzeichnis, wie kann ich das Verzeichnis ohne URL? –

Antwort

0

so etwas wie dieses Versuchen:

if (!in_array($file, $blacklist) && substr($file, 0, 1) != ".") { 

auszuschließen versteckte Verzeichnisse (in Unix-ähnlichen sistems):

$path = "/path/to/my/dir"; 
$latest_mtime = 0; 
$latest_filename = ''; 
if ($handle = opendir($path)) { 
    $blacklist = array('.', '..'); 
    while (false !== ($file = readdir($handle))) { 
     if (!in_array($file, $blacklist)) { 
      if (is_dir($file) && filemtime($file) > $latest_mtime) { 
       $latest_mtime = filemtime($file); 
       $latest_filename = $file; 
      } 
     } 
    } 
    closedir($handle); 
} 

Auch Sie den Zustand der schwarzen Liste für ändern.

+0

von wo wir $ entry ??? –

+0

Entschuldigung, es ist $ Datei. Ich habe immer noch die Antwort bearbeitet. Probieren Sie es jetzt. – jeprubio

+0

Ich bin mir auch nicht sicher, ob es filectime oder filemtime sein sollte. Versuche es mit beiden. – jeprubio

0

Begonnen als Kommentare - aber es waren so viele!

Aber es funktioniert nur für

Änderung is_file-is_dir

und Pfad ist in der obigen

$ path vollständige URL $ Datei ist kein URL, Es ist ein Pfad. is_dir/is_file/filectime funktioniert nicht für URLs

Auch Sie haben dies als cpanel markiert, was ein Grund wäre, dies als Off-Topic zu schließen, aber es ist nicht relevant für ein Codeproblem. OTOH es deutet darauf hin, dass dies keine MSWindows-Plattform ist. Unter Unix und Linux gibt filectime() die Dateizeit zurück. Daher werden die Informationen, die es zeigt, die Erstellung Zeit nicht genau widerspiegeln.

Verwandte Themen