PHP - FTP Fonksiyonları FTP File Transfer Protocol (Dosya Transfer Protokolü) ünü temsil etmektedir. Aşağıdaki sabitler FTP Modülü (FTP_ASCII, ve FTP_BINARY) kullanıldığı zaman tanımlıdırlar. Bu komutların işlenebilmesi için scriptin başına dl("php3_ftp.dll"); ifadesi eklenmelidir. FTP Fonksiyonları : ftp_connect : FTP bağlantısı açar. ftp_login : Bir FTP bağlantısına login yapar. ftp_pwd : O an içinde bulunulan klasör ü döndürür. ftp_cdup : içinde bulunulan klasörü değiştirir.(bir üst klasöre geçer.) ftp_chdir : FTP serverindaki klasörü değiştirir. ftp_mkdir : Klasör yaratır. ftp_rmdir : Klasör siler. ftp_nlist : Verilen klasördeki dosyaların listesini döndürür.(listeyi bir diziye atar) ftp_rawlist : Verilen klasördeki dosyaların detaylı listesini döndürür. ftp_systype : Bağlanılan FTP serverinin sistem tipini döndürür. ftp_pasv : Pasif modu açma veya kapama için kullanılır. ftp_get : Bağlanılan FTP serverindan dosya alır. ftp_fget : Bağlanılan FTP serverindan dosyayı alır ve açık olan bir dosyaya kaydeder. ftp_put : Dosyayı FTP serverina upload eder. ftp_fput : Açık olan bir dosyadan FTP serverina upload yapar. ftp_size : Girilen dosyanın boyutunu döndürür. ftp_mdtm : Girilen dosyanın son değiştirilme tarihini döndürür. ftp_rename : FTP serverindaki bir dosyanın adını değiştirir. ftp_delete : Girilen dosyayı FTP serveridan siler. ftp_site : Servera bir site komutu gönderir. ftp_quit : FTP bağlantısını kapatır. Örnek ftp uygulaması ftp_connect : FTP bağlantısı yapar. Kullanımı : int ftp_connect(string host,int[port]); Başarı durumunda ftp bağlantısı döndürür, hata durumunda False döndürür. ftp_connect() belirtilen hosta FTP bağlantısı yapar.PORT parametresi bağlantı için alternatif bir port sağlar.Yazılmazsa veya 0 değeri verilirse , Default FTP portu olarak 21 kullanılır. yukarı ftp_login : Bir FTP bağlantısına login yapar. Kullanımı : int ftp_login(int ftp_bağlantısı, string kullanıcıadı, string şifre); Başarı durumunda True, hata durumunda falase değerini döndürür. ftp_login() verilen ftp bağlantısına login yapar. yukarı ftp_pwd : Serverda içinde bulunulan klasörü döndürür. ------------- Kullanımı : int ftp_pwd(int ftp_bağlantısı); başarı halinde içinde bulunulan klasörü hata halinde False döndürür. yukarı ftp_cdup : Serverda bir üst klasöre geçer. ------------- Kullanımı : int ftp_cdup(int ftp_bağlantısı); başarı halinde True, hata halinde False döndürür. yukarı ftp_chdir : Serverda belirtilen klasöre geçer. ------------- Kullanımı : int ftp_chdir(int ftp_bağlantısı , string gidilecek_klasör); Başarı halinde True, hata halinde False döndürür. yukarı ftp_mkdir : Serverda yeni bir klasör yaratır. ------------- Kullanımı : string ftp_mkdir(int ftp_bağlantısı,string klasör_adı); başarı halinde yeni bir klasör yaratılır,hata halinde False döndürür. yukarı ftp_rmdir : Serverda bir klasörü siler. ------------- Kullanımı : int ftp_rmdir(int ftp_bağlantısı,string klasör_adı); Başarı halinde True, hata halinde False döndürür. yukarı ftp_nlist : Verilen klasörde bulunan dosyaların listesini döndürür. ------------- Kullanımı : int ftp_nlist(int ftp_baglantısı,string klasör_adı); Başarı halinde elemanları dosyaadları olan bir dizi , hata halinde False döndürür. yukarı ftp_rawlist : Verilen klasörde bulunan dosyaların ayrıntılı listesini döndürür. ------------- Kullanımı : int ftp_rawlist(int ftp_baglantısı, string klasör_adı); ftp_rawlist() FTP LIST komutunu icra eder.ve sonuçları bir dizide döndürür.Her dizi elemanı text in bir satırına karşılık gelmektedir.Ayrıca ftp_systype() ile döndürülen sistem tip belirteci sonuçların nasıl yorumlanması gerektigini saptamada kullanılabilir. yukarı ftp_systype : Bağlı bulunulan FTP serverinin sistem tip belirtecini döndürür. ------------- int ftp_systype(int ftp_baglantısı); Başarı halinde sistem belirtecini, hata halinde False döndürür. yukarı ftp_pasv : Pasif modu açar veya kapar. ------------- Kullanımı : int ftp_pasv(int ftp_baglantısı,int pasv); Başarı halinde True,hata halinde False döndürür. ftp_pasv() pasv parametresi True ise pasif modu açar.pasv parametresi False ise pasif modu kapar. yukarı ftp_get : Belirtilen dosyayı FTP serverindan alır. ------------- Kullanımı : int ftp_get(int ftp_baglantısı, string local_file, string remote_file, int mode); Başarı halinde True,hata halinde False döndürür. ftp-get() komutu remote_file ile belirtilen dosyayı serverdan alır ve bilgisayara local_file ile belirtilen isim ile kaydeder. mode parametresi FTP_ASCII veya FTP_BINARY olarak belirtilmelidir. yukarı ftp_fget : Belirtilen dosyayı FTP serverindan alır ve açık bir dosyaya kaydeder. ------------- Kullanımı : int ftp_fget(int ftp_baglantısı, int fp, string remote_file, int mode); Başarı halinde Trueihata halinde False döndürür. ftp_fget() komutu remote_file ile belirtilen dosyayı serverdan alır ve fp, dosya belirteci ile verilen dosyaya kaydeder.mode parametresi FTP_ASCII veya FTP_BINARY den birisi olmalıdır. yukarı ftp_put : Bilgisayardan belirtilen dosyayı alır ve FTP serverına kaydeder. ------------- Kullanımı : int ftp_put(int ftp_baglantısı, string remote_file,string local_file, int mode); Başarı halinde True,hata halinde False döndürür. ftp_put() bilgisayardan local_file ile belirtilen dosyayı alıp FTP serverina remote_file adıyla kaydeder.mode parametresi FTP_ASCII veya FTP_BINARY den birisi olmalıdır. yukarı ftp_fput : Bilgisayardan acık olan dosyayı alır ve FTP serverina kaydeder. ------------- Kullanımı : int ftp_fput(int ftp_baglantısı, string remote_file, int fp, int mode); Başarı halinde true,hata halinde False döndürür. ftp_fput() fp ile belirtilen dosya belirteci ile gösterilen dosyadan dosyanın sonuna kadar olan veriyi FTP serverina upload eder. Dosya servera remote_file ile belirtilen ad ile kaydedilir.mode parametresi FTP_ASCII veya FTP_BINARY den birisi olmalıdır. yukarı ftp_size : Verilen dosyanın büyüklüğünü döndürür. ------------- Kullanımı : int ftp_size(int ftp_baglantısı,string dosya_adı); Başarı halinde dosyanın büyüklüğünü,hata halinde -1 değerini döndürür. ftp_size() verilen dosyanın büyüklüğünü döndürür.Eğer bir hata oluşursa,mesela verilen dosya olmayabilir, -1 döndürür.Bütün serverlar bu fonksiyonu desteklememektedir. yukarı ftp_mdtm : Belirtilen dosyanın son değiştirilme tarihini döndürür. ------------- Kullanımı : int ftp_mdtm(int ftp_baglantısı,string dosya_adı); Başarı halinde bir UNIX timestamp ı, hata halinde -1 döndürür. Bu fonksiyonu bütün serverlar desteklememektedir. yukarı ftp_rename : FTP serverindaki bir dosyanın adını değiştirir. ------------- Kullanımı : int ftp_rename(int ftp_baglantısı,string dosya_adı,string yenidosya_adı); Başarı halinde True,hata halinde False döndürür. yukarı ftp_delete : FTP serverinda belirtilen dosyayı siler. ------------- Kullanımı : int ftp_delete(int ftp_baglantısı,string path); Başarı halinde True,hata halinde False döndürür. ftp_delete() FTP serverindan path parametresi ile belirtilen dosyayı siler. yukarı ftp_site : Servera bir site komutu gönderir. ------------- Kullanımı : int ftp_site(int ftp_baglantısı,string cmd); Başarı halinde True,hata halinde False döndürür. ftp_site() FTP serverina cmd ile belirtilen komutu gönderir. yukarı ftp_quit : FTP baglatısını kapatır. ------------- Kullanımı : int ftp_quit(int ftp_baglantısı); yukarı ÖRNEK KOD : PHP: <?phpdl("php3_ftp.dll"); /*Scripte ?php3_ftp.dll? dinamik kütüphane dosyasını kullanmasını söylüyoruz.*/$host="ftp.ornek.com";$user="username";$pass="password"; if (!$ftp=ftp_connect($host)) //ftp ye bağlanıyoruz.{echo $host ; echo ("Bağlantı yapılamadı.");exit; }if (!ftp_login($ftp,$user,$pass)) // username ve password giriyoruz.{echo ("Login yapılamadı.");exit;}$local="main.htm";$remote="index.htm";ftp_get($ftp,$local,$remote,FTP_ASCII); /* ftp_get kullanarak FTP serverindaki index.htm dosyasını bilgisayarımıza main.htm olarak alıyoruz. ASCII modunda.*/ $local=?deneme.htm?;$remote=?ana.htm?;ftp_put($ftp,$remote,$local,FTP_ASCII);/*ftp_put kullanarak bilgisayarımızdaki deneme.htm dosyasını FTP serverina ana.htm adıyla upload ettik. ASCII modunda*/$files=ftp_nlist($ftp,deneme);$a=sizeof($files);echo ("Deneme Klasöründeki Dosyaların Listesi");echo"<br>";for($i=0;$i<$a;$i++){echo $files[$i];echo"<br>";}/*ftp_nlist komutu ile FTP serverindaki deneme klasöründeki bütün dosyaları bir dizi halinde $files dizisine atadık.Daha sonra sizeof() fonksiyonuyla $files dizisindeki eleman sayısını öğreniyoruz yani kaç dosyamız olduğunu.Daha sonra for döngüsüyle bu dosyaların adlarını ekrana basıyoruz.*/$dizin=ftp_pwd($ftp);echo $dizin; /*ftp_pwd komutu ile o anda içinde olduğumuz dizini öğrenip ekrana basıyoruz.*/ftp_chdir($ftp,altklasör);/*ftp_chdir() komutu ile FTP serverinda dizin değiştirip altklasör adlı dizine geçiyoruz*/ftp_rename($ftp,index.htm,main.php3);/*ftp_rename() komutu ile serverdaki index.htm dosyasının adını main.php3 olarak değiştirdik.*/$sys=ftp_systype($ftp);echo ("System type : ");echo $sys;echo "<br>";/*ftp_systype() komutu ile FTP serverinin sistem tipini öğrendik.Burada eğer FTP serverimiz Unix sistem üzerindeyse ekrana UNIX yazacaktır.*/ftp_quit($ftp); //ftp bağlantımızı kapattık.?>