Merhaba Webkolog takipçileri! Bugünkü makalemde, PHP ile dosya sunucularına bağlanmak, dosya yüklemek, indirmek veya yönetmek için kullandığımız FTP (File Transfer Protocol) işlemlerini anlatacağım. Özellikle uzak sunucularda dosya manipülasyonu yapmanız gerektiğinde, PHP'nin FTP fonksiyonları işinizi oldukça kolaylaştırır.
Bu yazıda, PHP 5.2 ve önceki versiyonlarda sorunsuz çalışan temel FTP fonksiyonlarını inceleyeceğiz. Unutmayın, bu fonksiyonları kullanabilmek için sunucunuzda PHP'nin FTP modülünün etkin olması gerekir.
Temel FTP Fonksiyonları ve Kullanımı
FTP işlemlerinin mantığı oldukça basittir: önce bir FTP sunucusuna bağlanırız, ardından kullanıcı adı ve şifre ile oturum açarız, istediğimiz işlemleri yaparız ve en sonunda bağlantıyı kapatırız.
1. FTP Bağlantısı Kurma
Bir FTP sunucusuna bağlanmak için ftp_connect()
fonksiyonunu kullanırız. Bu fonksiyon, başarılı bir bağlantıda bir kaynak (resource) döndürür, aksi halde false
döner.
<?php
$ftp_sunucu = "ftp.siteniz.com";
$ftp_kullanici = "kullanici_adi";
$ftp_sifre = "sifre";
// FTP bağlantısı kur
$baglanti = ftp_connect($ftp_sunucu) or die("FTP sunucusuna bağlanılamadı.");
// Oturum açma
$giris = ftp_login($baglanti, $ftp_kullanici, $ftp_sifre);
if ($giris) {
echo "FTP bağlantısı başarıyla kuruldu.";
} else {
echo "FTP kullanıcı adı veya şifre hatalı.";
}
?>
2. Dosya Yükleme (Upload)
Yerel sunucunuzdaki bir dosyayı FTP sunucusuna yüklemek için ftp_put()
fonksiyonunu kullanırız.
<?php
$yerel_dosya = "resim.jpg";
$uzak_dosya = "public_html/resim.jpg";
// ftp_put fonksiyonu, başarılı olursa TRUE, başarısız olursa FALSE döner
if (ftp_put($baglanti, $uzak_dosya, $yerel_dosya, FTP_BINARY)) {
echo "Dosya başarıyla yüklendi: $yerel_dosya";
} else {
echo "Dosya yükleme sırasında bir hata oluştu.";
}
?>
Burada FTP_BINARY
, dosyanın ikili (binary) modda yükleneceğini belirtir. Metin dosyaları için FTP_ASCII
kullanabilirsiniz.
3. Dosya İndirme (Download)
FTP sunucusundaki bir dosyayı yerel sunucunuza indirmek için ftp_fget()
fonksiyonunu kullanabiliriz. Bu fonksiyon, dosyayı bir kaynak (resource) olarak kaydetmenizi sağlar.
<?php
$uzak_dosya = "raporlar/rapor.txt";
$yerel_dosya = "yerel_rapor.txt";
// Yerel sunucuda yazmak için bir dosya kaynağı oluştur
$dosya_kaynagi = fopen($yerel_dosya, "w");
// ftp_fget() ile dosyayı indir
if (ftp_fget($baglanti, $dosya_kaynagi, $uzak_dosya, FTP_ASCII)) {
echo "Dosya başarıyla indirildi: $uzak_dosya";
} else {
echo "Dosya indirme sırasında bir hata oluştu.";
}
// Açtığımız dosya kaynağını kapat
fclose($dosya_kaynagi);
?>
4. Dosya ve Klasör Yönetimi
FTP fonksiyonları sadece dosya transferi için değil, aynı zamanda uzak sunucudaki dosya ve klasörleri yönetmek için de kullanılır.
<?php
// Yeni bir klasör oluştur
if (ftp_mkdir($baglanti, "yeni_klasor")) {
echo "Klasör başarıyla oluşturuldu.";
}
// Bir dosyanın adını değiştir
if (ftp_rename($baglanti, "eski_dosya.txt", "yeni_dosya.txt")) {
echo "Dosya adı başarıyla değiştirildi.";
}
// Bir dosyayı sil
if (ftp_delete($baglanti, "silinecek_dosya.txt")) {
echo "Dosya başarıyla silindi.";
}
// Dosya izinlerini (CHMOD) değiştir
if (ftp_chmod($baglanti, 0600, "gizli_dosya.txt")) {
echo "Dosya izinleri başarıyla değiştirildi.";
}
?>
5. FTP Bağlantısını Kapatma
Tüm işlemler tamamlandıktan sonra, sunucu kaynaklarını serbest bırakmak için bağlantıyı kapatmamız gerekir.
<?php
// Tüm işlemler bittikten sonra bağlantıyı kapat
ftp_close($baglanti);
?>
Evet sevgili Webkolog okuyucuları, PHP'nin FTP fonksiyonları ile temel dosya sunucusu işlemlerini nasıl yapacağınızı anlatmaya çalıştım. Bu fonksiyonlar sayesinde, web uygulamalarınız içinde dosya transferi ve yönetimi gibi işlemleri kolayca otomatikleştirebilirsiniz.
Webkolog'u takipte kalın!
Hepinize bol kodlu ve başarılı projeler dilerim!
0 yorum:
Yorum Gönder