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.
sieht aus wie Sie Ihre FTP-Anmeldeinformationen für den Endbenutzer freilegen! – cmorrissey
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
Das ist ein anderes Problem, vor dem ich stehe. Würdest du wissen, wie das zu beheben ist? – Caske2000