Ben diğer şeyler arasında, FTP (FTP uzak dosya sistemi ile etkileşim için tek seçenek) üzerinden uzak dosyaların bir listesini kapmak ve bunları seçerek indirmek gerekiyor, bir üretim sunucusunda bir otomasyon komut dosyası yazıyorum.
Why I can't use PHP's native FTP wrappers
Bu çok kırılgan bir ortamda bir üretim sunucusudur. Mevcut otomasyon komut dosyalarının çoğu bu şekilde yazılır beri, PHP CLI kullanarak yazıyorum. Ben çok yeni bir PHP 5.1.2 yükleme var rağmen Ancak, ben bunu tekrar derlemek mümkün değilim - with-ftp, ve bu seçenek etkin değildir.
The remaining options
Yani, benim seçenekleri bağlanmak, benim dosya listesini almak ve seçici bir FTP akışı ve PHP yerli dosya sistemi fonksiyonlarını kullanarak shell_exec () veya php_filesystem işlevlerini kullanarak indirmek için vardır.
Ne yazık ki, ben de iyi kod örnekleri bulmak mümkün değilim. Ben FTP komutları kullanarak shell_exec çalıştığınızda, program, kabuğunda kontrol kalır bir kez FTP istemi açmak muhtemelen çünkü, askıda kalıyor.
$ftp_connect_command = "ftp -v -n $bl_ftp_host";
$ftp_login_command = "user $bl_ftp_user $bl_ftp_password";
$ftp_bye_command = "bye";
$ftp_connect_response = shell_exec("$ftp_connect_command");
// this never executes, because it hangs here waiting for a return to shell
$ftp_login_response = shell_exec($ftp_login_command);
Ya da, ben bu olurdu yapmak için akış tabanlı bir yol düşünün:
$ftp_path = "ftp://$bl_ftp_user:$bl_ftp_user@$bl_ftp_host/";
$stream_options = array('ftp' => array('overwrite' => false));
$context = stream_context_create();
if ($dh = opendir($ftp_path, $context))
{
while (filename = readdir($dh))
{
print($filename);
}
}
Ama bu güvenilir bir yöntem olarak kabul edilir emin değilim.
Herkes bir dizin listesini yakalamak ve bu yöntemlerden biriyle dosyaları indirmek için nasıl gösteren kod örnekleri verebilir misiniz?