2016-12-13 6 views
0

私は、4000枚程度の写真を含むFTPサーバーを持っています.2台の別々のカメラ(30分ごとに1組の写真)で定期的に追加されます。私はまた、これらの写真を表示するウェブサイトを持っています。PHPとFTP:ファイルの最新バッチを取得する

現在、ウェブサイトには各カメラの最新の20枚の写真が表示されます。最初のカメラの画像はすべて文字列「ハウス」を含み、2番目の画像は「ストリート」を含む。ここで私が今使っているコードは次のとおりです。

$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>"; 
} 

私は最初、その後わずか40かそこらの写真を利用し、サーバからのすべてのファイルを取り出す感はかなり非効率的である必要があります。私は日付に基づいてファイルを取得する他の方法を検索しましたが、これらのメソッドはすべて、並べ替える前にすべての単一のファイルを取得する同じテクニックを使用しているようです。

私は正しくやっているのですか、それとももっと効率的な方法がありますか?

ありがとうございます。

+0

は、FTPクレデンシャルをエンドユーザーに公開しているようです。 – cmorrissey

+0

ftp_nlistは、ファイル自体の名前ではなく、ファイルの名前を提供します。これは問題ではないはずです.FTPはサーバー上でのフィルタリングをサポートしていないため、これを行う他の方法はありません。上記のように、出力HTMLに資格情報を入れないでください。 – Iarwa1n

+0

それは私が直面している別の問題です。あなたはそれを修正する方法を知っていますか? – Caske2000

答えて

0

FTPでは、特定の条件に一致するファイルのサブセットのリストを取得する方法はありません。一部のサーバーでは、ファイルマスクに基づいてファイルを選択できます(ただし、これは標準ではありません)。

あなたがしていることは、できることです。

関連する問題