İçeriğe geç
PHP Dosya Sistemi İşlemleri | dogrukod.com

PHP dosya sistemi işlevleri

PHP dosya sistemi işlevleri sayesinde yeni dosyalar oluşturabiliriz, olan dosyaları değiştirebiliriz veya silebiliriz. Dosya yükleme ve indirme olaylarında da lazım olacak olan fonksiyona da bu başlık altında söz edeceğiz.

Bu sayede tek bir PHP dosyası ile milyonlarca dosya oluşturup, silerek güzel bir dosya yönetimiarşiv yönetimidosya menejeri gibi işe yarar uygulamalar yapabiliriz.

Dosyalara yazma ve silme izinleri

Dosya oluşturma ya da silme gibi işlemlere girmeden önce bunları yapabilmemiz için ihtiyacımız olan yetki ve izinlerden söz edeceğim.

Eğer lokalde kendi bilgisayarımız üzerinde çalışıyorsak varsayılan olarak izinler verilmiştir. Ama gerçek bir site hostunda güvenlik için kısıtlamalar vardır. Çalışma yapacağımız dosyaya ya da dizine CHMOD denilen değiştirme modunu ayarlamamız gerekmektedir. Bir dosya ya da dizine, FTP ya da hostun yönetim paneli üzerinden yazma izni verebiliriz. Bu işi FTP’den yapmak için gerekli dosya ya da dizine sağ tıklayıp izin değerlerine “777” yazmamız yeterli gelecektir.

CHMOD değerini 777 yaptığımız dosya ya da dizine tüm yazma, okuma ve silme izinleri vermiş oluruz. Sistemi kodlarken yapacaklarımıza ve yaptıklarımıza dikkat etmemiz gerekiyor.

PHP ile dosya oluşturmak

Dosyayı oluşturup, değiştirip, çalıştırmamız için touch() adında bir fonksiyonunu kullanacağız. Türkçe anlamı dokunmak olan bu fonksiyon PHP’de dosyalara ilk dokunuşu yapmaya ya da eğer dosya varsa son değişim tarihini değiştirmeye yarıyor. Kullanımı kolay, bir parametre ile çalışıyor. Parametresine oluşturulacak dosya adını giriyoruz.

touch('selam.txt');

Yukarıdaki kod çalıştığında kaynak PHP dosyasının olduğu dizinde selam.txt adında boş bir dosya oluşturur.

arşiv yönetimi, dosya silme, dosya yönetim sistemi, ftp, güvenlik, hostinger, kodlama, php, php dersleri, php yazılım, php yazılımı, touch, yazılım
PHP Dosya Oluşturma | dogrukod.com

PHP ile dosyaları açmak ve kapatmak

Dosyaların içeriğini okuyup, değiştirip, silmeden önce onları PHP’de açmamız gerekir. Gerekli işlemleri yapmaya başlamadan önce dosyaya ilk erişimi ve bağlantıyı sağlamaktır. Bu erişimi fopen() fonksiyonu ile yapıyoruz. Bu fonksiyon iki parametre ile çalışıyor. İlk parametrede erişeceğimiz dosyayı, ikinci parametrede ise dosyayı ne için eriştiğimizi belirtecek kipi giriyoruz.

Dosyalara ne için erişeceğimizi belirtmemizi belirtecek 8 tane kip var. bu kipleri aşağıdaki tabloda gösterelim;

KipAçıklaması
rDosyayı okumak için açar. (read)
r+Dosyayı hem okumak hem de yazmak için açar. (read)
wDosyayı yazmak için açar. Var olan içeriği siler (write)
w+Dosyayı hem yazmak hem de okumak için açar. Var olan içeriği siler, baştan yazar. (write)
aDosyayı yazmak için açar. Var olan içeriği silmez sonuna ekler. (append)
a+Dosyayı hem yazmak hem de okumak için açar. Var olan içeriği silmez sonuna ekler. (append)
xDosyayı oluşturur ve yazmak için açar. Eğer dosya zaten varsa FALSE döner.
x+Dosyayı oluşturur, yazmak ve okumak için açar. Eğer dosya zaten varsa FALSE döner.

Dosyalar ile gerekli işlemleri gerçekleştirdikten sonra onları kapatmayı unutmamalıyız. Eğer kapatmazsak bir sonraki dosyaya erişimimizde sorunlarla karşılaşırız. Dosyaları kapatmak için fclose() fonksiyonunu kullanırız. Bu fonksiyon bir parametre ile çalışır ve açtığımız dosyayı kapatır. Parametresine fopen ile açtığımız dosyanın değişkeni yazarız.

$dosya = fopen('selam.txt', 'r');
fclose($dosya);

Örnekte selam.txt dosyasını okumak için açmış ve ilk erişimi sağlamış olduk ve hemen ardından da kapattık. Bağlantıyı sağladıktan sonra diğer okuma ve yazma fonksiyonlarını kullanarak gerekli işlemleri gerçekleştireceğiz.

PHP ile dosyaların içeriğini okumak

Bu işlemi gerçekleştirmek için fopen()‘da r kipini, içeriğe ulaşmak için ise fread() fonksiyonu kullanıyoruz.

Bu fonksiyonun ilk parametresine önceden fopen ile açtığımız dosyanın değişkenini yazacağız. İkinci parametreye ise dosyadan kaç bayt okuyacağımızı belirteceğiz.

$dosya = fopen('selam.txt', 'r');
$icerik = fread($dosya, filesize('selam.txt'));
echo $icerik;
fclose($dosya);

Eğer selam.txt dosyamızın içerisinde bir şeyler varsa ekranda aynen olduğu gibi yazacaktır. Eğer boş ise ekranda boş olacaktır.

Dosyanın tüm içeriğini okumak istediğimiz için ikinci parametreye filesize() fonksiyonu ile dosyanın toplam boyutunu belirterek tüm içeriği almayı sağladık.

arşiv yönetimi, dosya silme, dosya yönetim sistemi, ftp, güvenlik, hostinger, kodlama, php, php dersleri, php yazılım, php yazılımı, touch, yazılım
PHP Dosya İçeriği Okuma | dogrukod.com

PHP ile dosyalara yazma

Dosya yazmak için w kipini ve fwrite() fonksiyonunu kullanırız. Yalnız w kipini kullanırken eriştiğimiz dosyanın içeriği tamamen silinir ve yazacağımız değer ile değiştirilir. Fakat daha önce var olan içerik kaybolmadan yazmak istiyorsak o zaman a kipini kullanman gerekiyor. Bu fonksiyonda iki parametre ile çalışıyor. İlk parametreye dosyaya fopen() ile eriştiğimiz değişkeni, ikinci parametreye ise yazılacak içeriği yazarız.

$dosya = fopen('selam.txt', 'w');
fwrite($dosya, 'selam Dünya');
fclose($dosya);

Örneği çalıştırdığımızda selam.txt adında dosyamızın içeriğine selam Dünya yazdık.

başka bir örnekle devam edelim;

or($sayi = 1; $sayi < 4; $sayi++) {
   $dosya_adi = 'Dosya' . $sayi . '.txt';
   touch($dosya_adi);
    
   $dosya = fopen($dosya_adi, 'w');
   fwrite($dosya, 'Bu ' . $sayi . '. dosyanın içeriği!');
   fclose($dosya);
}

Bu örnekte tam 3 tane txt dosyası (Dosya1.txt, Dosya2.txt, Dosya3.txt) oluşturup her birinin içerisine “Bu 1. dosyanın içeriği” şeklinde içerik ekledik.

PHP ile dosyaları silme

unlink() fonksiyonu ile istediğiniz dosyayı yok edebilirsiniz. Kullanımı basit ve tek parametreli.

unlink('selam.txt');

selam.txt dosyasını siler.

PHP’de dosyaların varlığını kontrol etmek

Dosyaların varlığından haberdar olmak, varsa değiştirmek yoksa oluşturmak gibi işlemler yapmak için file_exists fonksiyonunu kullanırız. Parametresine gireceğimiz dosya adında bir dosya mevcut ise TRUE değil ise FALSE dönecektir.

bir örnekle açıklayalım;

if(file_exists('selam.txt')) {
   echo 'Dosyamız var';
} else {
   echo 'Dosyamız yok';
}

selam.txt dosyasını sildiğimiz için ekranda Dosyamız yok yazacaktır.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir