2016-12-13 16 views
0

Ich habe einen FTP-Server mit 4000 oder so Bildern, die regelmäßig von zwei separaten Kameras (ein Paar Bilder pro 30 Minuten) hinzugefügt werden. Ich habe auch eine Website, auf der diese Bilder angezeigt werden.PHP & FTP: Den letzten Stapel von Dateien bekommen

Im Moment zeigt die Website die neuesten 20 Bilder von jeder Kamera an. Die Bilder der ersten Kamera enthalten alle die Zeichenfolge "House" und die der zweiten enthalten "Street". Hier ist der Code, den ich jetzt bin mit:

$ftpConn = ftp_connect([LOGIN_INFORMATION]); 
$login = ftp_login($ftpConn,[LOGIN_INFORMATION]); 
if ((!$ftpConn) || (!$login)) { 
    echo 'FTP connection has failed! Attempted to connect to '. $host. ' for user '.$user.'.'; 
    ftp_close($ftpConn); 
    exit(); 
} 

$directory = ftp_nlist($ftpConn,''); 
$house = array(); 
$street = array(); 

for ($i = 1; $i < count($directory); $i++) { 
    if (strpos($directory[$i], 'House')) { 
     array_push($house, $directory[$i]); 
    } else { 
     array_push($street, $directory[$i]); 
    } 
} 
$_SESSION['house'] = $house; 
$_SESSION['street'] = $street; 
ftp_close($ftpConn); 
$result = "<ul>"; 
for ($i = count($house) - 6; $i < count($house); $i++) { 
    $result .= "<li><a class=\"fancybox\" rel=\"group\" href=\"ftp://[LOGIN_INFORMATION]/$house[$i]\"><img src=\"ftp://LOGIN_INFORMATION/$house[$i]\" width=\"160\" height=\"90\" ></a></li>"; 
} 

Ich habe das Gefühl, dass zuerst alle Dateien vom Server abrufen nur dann 40 verwenden oder so Bilder ist ziemlich ineffizient. Ich habe nach anderen Methoden zum Abrufen von Dateien auf der Grundlage von Datum gesucht, aber alle diese Methoden scheinen die gleiche Technik zu verwenden, um jede einzelne Datei abzurufen, bevor sie sortiert werden.

Mache ich es richtig oder gibt es eine andere Art, die effizienter wäre?

Vielen Dank im Voraus.

+0

sieht aus wie Sie Ihre FTP-Anmeldeinformationen für den Endbenutzer freilegen! – cmorrissey

+0

ftp_nlist geben Sie nur die Namen der Dateien, nicht die Dateien selbst. Dies sollte kein Problem sein und es gibt keine andere Möglichkeit dies zu tun, da FTP keine Filterung auf dem Server unterstützt. Und, wie oben erwähnt, legen Sie Ihre Anmeldeinformationen nicht in das Ausgabe-HTML. – Iarwa1n

+0

Das ist ein anderes Problem, vor dem ich stehe. Würdest du wissen, wie das zu beheben ist? – Caske2000

Antwort

0

In FTP gibt es keine Möglichkeit, eine Liste nur einer Teilmenge von Dateien abzurufen (bestimmte Kriterien erfüllen). Außer dass einige Server die Auswahl von Dateien basierend auf einer Dateimaske erlauben (aber das ist kein Standard).

Also was Sie tun, ist das Beste, was Sie tun können.

Verwandte Themen