(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
ftp_nb_get — FTP sunucusundan (engellenmeyen kipte) bir dosya indirir
$ftp
,$yerel_dosya
,$uzak_dosya
,$kip
= FTP_BINARY
,$devam_yeri
= 0ftp_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
Bir FTP\Connection nesnesi.
yerel_dosya
Yerel dosyanın yolu (dosya varsa üzerine yazılır).
uzak_dosya
Dosyanın FTP sunucusundaki yolu.
kip
Aktarım kipi. FTP_ASCII
veya FTP_BINARY
olabilir.
devam_yeri
Uzak dosyada indirmenin başlayacağı konum.
Sürüm: | Açıklama |
---|---|
8.1.0 | ftp bağımsız değişkeni artık FTP\Connection nesnesi kabul ediyor; evvelce ftp özkaynağı kabul ediyordu. |
7.3.0 | kip bağımsız değişkeni artık seçimlik, evvelce zorunluydu. |
FTP_FAILED
veya FTP_FINISHED
ya da FTP_MOREDATA
veya yerel_dosya
açılamazsa false
döner.
Örnek 1 - ftp_nb_get() örneği
<?php
// İndirmeyi başlatalım
$ret = ftp_nb_get($ftp, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {
// Başka bir şeyler yapalım
echo ".";
// İndirmeye devam...
$ret = ftp_nb_continue($ftp);
}
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($ftp, "test", "README", FTP_BINARY,
filesize("test"));
// VEYA: $ret = ftp_nb_get($ftp, "test", "README",
// FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {
// Başka şeyler yapalım
echo ".";
// İndirmeye devam...
$ret = ftp_nb_continue($ftp);
}
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
// otomatik konumlamayı kapatalım
ftp_set_option($ftp, FTP_AUTOSEEK, false);
// İndirmeyi başlatalım
$ret = ftp_nb_get($ftp, "yenidosya", "BENiOKU", FTP_BINARY, 100);
while ($ret == FTP_MOREDATA) {
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ı.