(PHP 4 >= 4.3.0, PHP 5)
ftp_nb_get — FTP sunucusundan (engellenmeyen kipte) bir dosya indirir
ftp_nb_get() işlevi FTP sunucusundan uzak_dosya dosyasını alır, yerel dosya sistemine yerel_dosya adıyla kaydeder.
Bu işlevin ftp_get() işlevinden farkı bu işlevin dosyayı eşzamansız olarak indirmesidir. Yani indirme işlemi sırasında başka işlemler yapabilirsiniz.
FTP bağlantısının bağlantı tanıtıcısı.
Yerel dosyanın yolu (dosya varsa üzerine yazılır).
Dosyanın FTP sunucusundaki yolu.
Aktarım kipi. FTP_ASCII veya FTP_BINARY olabilir.
FTP_FAILED veya FTP_FINISHED ya da FTP_MOREDATA döner.
Örnek 1 - ftp_nb_get() örneği
<?php
// İndirmeyi başlatalım
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {
// Başka bir şeyler yapalım
echo ".";
// İndirmeye devam...
$ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
echo "Dosya indirilirken bir hata oluştu...";
exit(1);
}
?>
Örnek 2 - ftp_nb_get() ile indirmeyi devam ettirmek
<?php
// İndirmeyi tekrar başlatalım
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY,
filesize("test"));
// VEYA: $ret = ftp_nb_get($my_connection, "test", "README",
// FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {
// Başka şeyler yapalım
echo ".";
// İndirmeye devam...
$ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
echo "Dosya indirilirken bir hata oluştu.....";
exit(1);
}
?>
Örnek 3 - ftp_nb_get() ile indirmeyi yeni bir dosyanın 100. baytından sürdürmek
<?php
// Özdevinimli konumlamayı kapatalım
ftp_set_option($my_connection, FTP_AUTOSEEK, false);
// İndirmeyi başlatalım
$ret = ftp_nb_get($my_connection, "yenidosya", "BENiOKU", FTP_BINARY, 100);
while ($ret == FTP_MOREDATA) {
/* ... */
// İndirmeye devam...
$ret = ftp_nb_continue($my_connection);
}
?>
Yukarıdaki örnekte, yenidosya, FTP sunucusundaki BENiOKU dosyasından 100 bayt kısa olacaktır. Bunun sebebi indirmenin 100. bayttan başlatılmış olmasıdır. Eğer FTP_AUTOSEEK seçeneğine FALSE atamasaydık yenidosya dosyasının ilk 100 baytı '\0' karakterleriyle doldurulacaktı.