PHP Dosya İşlemleri -2-

PHP Dosya İşlemleri -2-

Hepinize merhaba dostlarım 😊. Bu yazımda sizlere daha önce anlattığım "PHP de Dosya İşlemleri -1-" konusunun devamı niteliğinde olan dosya işlemleri konusuna devam edeceğim 😊. Önceki yazımı okumayan dostlarım buradan ulaşabilirler 😊. Özellikle projelerde yeri geldiğince sıklıkla kullanılan bu dosya sistemlerini tek yazı ile bırakmak istemedim bunun yerine devamı niteliğinde olan bu yazıyı da paylaşarak sizlere yardımcı olmak istedim 😊. Heyecanlandığınızı ve öğrenme adı altında sabırsızlandığınızı seziyorum. O halde sözü daha fazla uzatmadan hemen konumuza geçelim ve dosya sistemleri işlemlerinde kullanılan fonksiyonları inceleyerek bunlarla ilgili örnekler yapalım 😊

mkdir() Fonksiyonu

Eveeeet artık geldik dosya sistemlerinin devamı niteliğinde olan konumuzun içerisindeki ilk fonksiyonumuz olan mkdir() fonksiyonuna. Özellikle linux dağıtımı kullanan dostlarım varsa aranızda komutun ne işe yaradığını hemen anlamıştır. İlk defa gören dostlarım için ise ben fonksiyonumuzun mantığını anlatayım. Dostlarım fonksiyonumuzun ismi İngilizce make directory cümlesinden türetilmiş olup Türkçe karşılığı ise "Dosya Oluştur" şeklindedir. Projelerimiz içerisinde yeri geldiğinde bir klasör oluşturma işlemini istediğimizi zamanlarda bu fonksiyonu gönül rahatlığı ile kullanabiliriz. Şimdi gelelim kullanımı için bizlerden hangi parametreler istediğine 😊

  1. Parametre: Dosyanın Yolu ve İsmi (../project/deneme vs) (zorunlu)
  2. Parametre: Dosya İzin Kodu (777,755 vs) (zorunlu)

şeklinde iki adet zorunlu parametre alır dostlarım 😊. Sabırsızlandığınızı her bir başlıkta sezdirmeyi başarıyorsunuz 😊. O zaman hemen gelin kodlamaya geçelim 😊. Örnek olarak bir index.php dosyası oluşturalım ve aşağıdaki gibii kodlarımızı yazalım

<?php

$klasor = mkdir("deneme",755);   // dosya oluştur ve değişkene aktar dedik
if ($klasor){
    echo "Dosya Oluşturuldu";   // dosya ooluşturuldu ise ekrana bu metin yazdırılsın
}else{
    echo "Dosya Oluşturulamadı"; // dosya oluşturulamadı ise ekrana bu metin yazdırılsın
}

?>

şeklinde kodlarımızı yazdık dostlarım. Burada süreç nasıl işledi diye merak ediyorsanız size olayı anlatayım

  1. Klasör oluşturma fonksiyonumuzu yazdık, parametreleri atadık ve burdan gelen sonucu (boolean sonuç) bir değişkene aktardık
  2. Daha sonra if else ile dosya oluşturulmuş yani sonuç true olarak gelmiş ise ekranımıza "Klasör Oluşturuldu", false ise "Klasör Oluşturulamadı" mesajını basacaktır 😊.

şeklinde sürecimiz işliyor dostlarım 😊. Şimdi ise gelelim bu kodu çalıştıralım. Ekranımıza aşağıdaki gibi bir çıktı verecektir

Klasör Oluşturuldu

şeklinde çıktımız karşımıza gelmiş bulunmakta 😊. Buradan da klasör oluşturma işlemimizin başarıyla gerçekleştiğini ve klasörümüzün geldiğini görüyoruz 😊. O halde gelelim diğer bir dosya işlemleri fonksiyonuna

rmdir() Fonksiyonu

Ve geldik mkdir() fonksiyonundan sonra gelen diğer bir fonksiyonumuz olan rmdir() fonksiyonumuza 😊. Yine mkdir() fonksiyonunun girişinde dediğim gibi linux dağıtımı kullanan dostlarım görür görmez bu fonksiyonu isminden analiz etmiştir. Bilmeyen ve ilk defa gören dostlarım için ise ben mantığı anlatmak istiyorum 🙂. rmdir() fonksiyonuna bakacak olursak dostlarım İngilizce "remove directory" cümlesinden türetilmiştir. Türkçe karşılığı ise "klasör sil" olan bu fonksiyonumuz mkdir() fonksiyonunun tam tersi çalışır. mkdir() fonksiyonu nasıl klasör oluşturmaya yarıyorsa rmdir() fonksiyonu ise klasör silme işlemine yarıyor. Öncelikle kullanacağı parametrelere gelin bir göz atalım

  1. Parametre: Klasör Yolu ve İsmi (../project/deneme vs) (zorunlu)

şeklinde bir adet zorunlu parametre alır. Şimdi ise gelelim bir önceki başlığımızda yani mkdir() fonksiyonu kullanımında oluşturduğumuz "deneme" isimli klasörümüzü silelim. O halde hemen gelip hızlıca kodlarımızı yazalım

<?php

$klasor = rmdir("deneme");   // klasör sil ve değişkene aktar dedik
if ($klasor){
    echo "Klasör Silindi";   // klasör silindi ise ekrana bu metin yazdırılsın
}else{
    echo "Klasör Silinemedi"; // klasör silinemedi ise ekrana bu metin yazdırılsın
}

?>

şeklinde kodumuzu yazdık. Burada süreç nasıl işliyor diye merak ediyorsanız hemen size anlatayı

  1. rmdir() fonksiyonumuz ile sileceğimiz klasörümünün yolunu aldık ve bu fonksiyonumuzdan dönecek olan sonucu (boolean) bir değişkene aktardık
  2. Eğer sonuç true dönmüş ise ekranımıza "Klasör Silindi", false dönmüş ise "Klasör Silinemedi" şeklinde bir sonuç dönecektir

süreç tamamen bu şekilde işliyor dostlarım 😊. Şimdi gelelim kodu çalıştıralım. Çalıştırdığımızda  ekranımıza aşağıdaki gibi çıktı verecektir

Klasör Silindi

şeklinde uyarı verecektir. Proje dizinimize baktığımızda da gerçekten klasörümüzün silindiğini göreceğiz 😊. Buraya kadar sorun yoksa gelelim diğer bir fonksiyonumuza

readfile() Fonksiyonu

Ve geldik artık klasör oluşturma ve silme işlemlerinden sonra dosya içeriği ile ilgili komutlardan birisi olan readfile() fonksiyonuna 😊. İngilizce olarak "Read File" kelimesinden türetilmiş olan ve Türkçe karşılığı ise "Dosya Oku" olan bu methodumuz içerisine aktardığımız dosyamızın içeriğini okuyup bize çıktı verme işleminde yardımcı olur. Çalışması için hangi parametreleri aldığına bakacak olursak

  1. Parametre: Okunacak dosya yolu (../project/dosya.txt gibi) (zorunlu)

şeklinde bir adet zorunlu parametre alır. Şimdi gelelim dostlarım proje klasörümüz içerisinde örnek olarak bir metin.txt isimli bir dosya açalım ve içerisine

MFSoftware Blog
readfile() Fonksiyonu

şeklinde bir yazı yazalım. Daha sonra index.php dosyamızın içerisinde aşağıdaki gibi kodlarımızı yazalım

<?php

$oku = readfile('metin.txt');   // dosya içeriğimizi oku ve bir değişkene aktar
echo $oku;  // dosya içeriğini ekrana bastır

?>

şeklinde kodumuzu yazdık. Pekiiii burada süreç nasıl işliyor diye soracak olursanız

  1. Proje dizinimiz içerisindeki dosyayı readfile() fonksiyonu ile okuduk ve içeriğini bir değişkene aktardık
  2. Daha sonra da değişken içerisindeki değeri ekrana bastırıldı

şeklinde bir süreç işliyor. Kodları çalıştırdığımızda ise bizim ekranımıza 

MFSoftware Blog readfile() Fonksiyonu

şeklind bir sonuç çıkacaktır 😊. Bütün işlemler bu kadar dostlarım 😊. Gelelim artık bir diğer fonksiyonumuza

fOpen() Fonksiyonu

Ve geldik dosya işlemlerinin vazgeçilmezi niteliğinde olan ve dosya işlemlerinde sıklıkla kullanılan fonksiyonumuza 😊. İngilizce olarak "File Open" cümlesinden türetilmiş olan ve Türkçe karşılığı "Dosya Aç" olan bu fonksiyonumuz içerisinde belirttiğimiz dosyayı bizim belirttiğimiz işleme karşılık (sadece okumak için, sadece yazmak için vs) şeklinde açmaya yarar. Kullanımı için gerekli olan parametrelere bakacak olursak

  1. Parametre: Üzerinde işlem yapılacak olan dosyamızın yolu (../project/deneme.txt gibi) (zorunlu)
  2. Parametre: Ne tür kullanılacağı (zorunlu)

bu şekilde iki adet parametre alır. Şimdi sizin aklınızda bir soru var ve ben bunu seziyorum

Hocam birinci parametreyi tamam anladık da ikinci parametrede olay tam olarak nasıl gerçekleşiyor yani nasıl bir parametre gönderme işlemi yapacağız ?

Çok ama çok güzel bir soru sordunuz dostlarım 😊. Öğrenme süreci içerisinde bu şekilde soruların gelmesi beni çok mutlu ediyor. Sözü daha fazla uzatmadan olayın mantığını açıklayayım sizlere. Yukarıda demiştim ya sizlere dosyayı hangi türlü yani ne tür kullanacağımız işte onu "r , r+ , x, x+" gibi ufak komutlarla belirtme işlemini ikinci parametre olarak tanımlıyoruz. Bu komutlara gelin bir göz atalım

Komut Komutun Görevi
r Dosyanın sadece okunacağı, başka işlem yapılmayacağı durumda kullanılır
w Dosyanın üzerine sadece veri yazdırma işleminde kullanılır. Başka işlem için kullanılamaz
a w komutuna benzer yani dosya üzerine veri yazmak için kullanılır lakin w komutundan farkı ise şudur. w komutunda dosya sadece yazılmak için açılırken komutunda okunmak için de açılmış olur
x Üzerine veri yazılması ve için yeni bir dosya oluşturma işleminde bize yardımcı olur
r+ Dosyamızı hem okumak hem de üzerine veri yazmamız gerektiği durumlarda bu komut bize yardımcı olur
w+ Dosyamızı hem okumak hem de dosyamızın üzerine veri yazma gerektiği durumlarda kullanabiliriz lakin dosyamızın içeriğini silecektir
a+ Dosyamızı hem okumak hem de dosyamızın üzerine veri yazma gerektiği durumlarda bu komut kullanabiliriz. w+ komutunun aksine dosya içeriğini silmez, içeriği korumada önemli rool oynar
x+ Dosyamızı hem okumak hem de dosya üzerine veri yazmamız gerektiği durumlarda bize yardımcı olur. Lakin buradaki amaç aynı zamanda dosyanın varlığını da kontrol etmemizi de sağlar. Dosyamız var ise true, eğer dosyamız yoksa false sonucunu bize döndürür

şeklinde ne tür işlem yapılacağını rahatlıkla belirtiyoruz. Şimdi gelelim fopen() fonksiyonumuzun kullanımına

Örnek olarak bir metin.txt dosyası açalım ve içerisine aşağıdaki gibi ufak bir metin yazalım

MFSoftware Blog
fopen() Fonksiyonu

şeklinde metnimizi yazdık. Daha sonra index.php dosyamız içerisine gelip

<?php

$dosya = fopen("metin.txt","r");    // dosyamızı sadece okumak için açtık
echo fread($dosya,filesize("metin.txt"));   // dosyamızın içeriğini dosyamızın boyutu (byte uzunluğu olarak) kadarını ele al ve oku dedik
fclose($dosya);   // dosyamızı kapat dedik

?>

şeklinde kodlarımızı yazdık. Burada süreç nasıl işliyor diye merak ediyorsanız size hemen açıklayayım

  1. Dosyamızı yani metin.txt yi sadece okunabilir olarak açtık
  2. Dosya içeriğini dosyamızın boyutu kadar okuduk
  3. Dosyamızı kapattık

şeklinde süreç işliyor. Kodu çalıştırdığımızda ekran çıktımız

MFSoftware Blog fopen() Fonksiyonu

şeklinde çıktı karşımıza çıkacaktır 😊. İşlemler bu kadar basit. Gelelim bir diğer fonksiyonumuza

fgets() Fonksiyonu

Ve geldik dosya işlemlerinde kullanılan fonksiyonlarımızdan birisi olan fgets() fonksiyonumuza 😊. Bu fonksiyonumuzun genel amacına bakacak olursak bizim dosyamız üzerindeki metinlerimiz olsun diyelim alt alta 10 satır falan diyelim. En birinci satırını alıp bizim ekranımıza bastırma işlemini yapmaya yardımcı olur. Nasıl kullanıldığına yani hangi parametreleri aldığına bakacak olursak gelelim hangi parametreleri kullandığına

  1. Parametre: Tek satır okunacak olan dosyamız (zorunlu)

şeklinde bir adet parametre alıyor 😊. Şimdi gelelim bu fonksiyonumuz bu şekilde havada kalmasın bir örnek yapalım. 

İlk olarak metin.txt dosyamızı oluşturalım ve içerisine aşağıdaki gibi 3 satır ekleyelim

Satır 1
Satır 2
Satır 3

şeklinde 3 adet satır ekledik. Daha sonra index.php dosyamızı açalım ve

<?php

$dosya = fopen("metin.txt","r");   // dosyamızı sadece okunabilir şekilde ayarladık
echo fgets($dosya);  // dosyamız içerisindeki tek satırı alalım
fclose($dosya);     // dosyamızı kapatalım

?>

şeklinde kodlarımızı yazdık. Şimdi burada süreç nasıl işledi diye merak ediyorsanız dostlarım hemen size anlatayım 😊

  1. Metin.txt dosyamızı okunabilir olarak açtık
  2. Tek bir satırını aldık
  3. Dosyamızı kapattık

şeklinde sürecimiz işledi. Burada index.php dosyamızı çalıştırdığımızda ekranımıza çıkacak olan sonuç

Satır 1

şeklinde ekranımıza çıkmış bulunmaktadır dostlarım 😊. Bütün işlemler bu kadar basit. Şimdi gelelim diğer bir fonksiyonumuza 😊

feof() Fonksiyonu

Geldik bir diğer dosyamıza dostlarım 😊. feof() fonksiyonumuza bakacak olursak dostlarım buradaki genel amaç dosyanın sonuna gelindi mi gelinmedi mi diye bakma işlemleri gerektiren zamanlarda oldukça işimize yarar. Örnek vermemiz gerekirse kullanıcıdan bir metin dosyası isteyeceğimiz bir yazılım yazdık varsayalım. Bu aşamada bizim dosya içeriğini ekranımıza yazdıracağımız zamanlarda (örneğin hotmail ekranı gibi bir ekranda bastırma işlemi yağacağız varsayalım) işte bu kısımlarda rahatlıkla kullanabiliriz. Şimdi gelelim feof fonksiyonumuzun çalışması için bizden zorunlu olarak istenen parametrelere

  1. Parametre: Üzerinde okuma yapacağımız dosyamız (zorunlu)

şeklinde bir adet zorunlu parametre alır. Şimdi gelelim bu fonksiyonumuzla bir örnek yapmadan önce metin.txt dosyamızı oluşturalım. İçerisine aşağıdaki gibi bir yazı yazalım

MFSoftware Blog
feof() fonksiyonu
Hepinize iyi çalışmalar dilerim :) esen kalın

şeklinde metin.txt dosyamızı düzenleyelim. Daha sonra index.php dosyamız içerisinde aşağıdaki gibi kodlarımızı yazalım

<?php

$dosya = fopen("metin.txt","r");   // dosyamızı sadece okunabilir şekilde ayarladık
while(!feof($dosya)){      // dosyamızın sonuna gelinmediği sürece çalışacak olan şartımızı yazdık
    echo fgets($dosya)."<br>";    // dosyamızın sonuna gelinmediği
}
echo "<br> Dosya Sonuna Ulaşıldı";   // dosyamızın sonuna geldiğini ekranımıza yazdırdık

?>

şeklinde kodlarımıza yazdık. Pekiiiii burada süreç nasıl işliyor gelin ona bir bakalım

  1. Dosyamızı okunabilir şekilde açtık
  2. Bir while döngüsü açtık ve dosyamızın sonuna geldik mi gelmedik mi diye !feof() fonksiyonumuzu kullandık
  3. Koşul sağlandığı taktirde döngü içerisinde fgets() ile satırları tek tek yazdırdık
  4. Daha sonra ise koşul sağlandıktan sonra yani dosyanın sonuna gelmişsek ekranımıza "Dosya Sonuna Ulaşıldı" mesajını yazdırdık

işte dostlarım bütün işlemler bu kadar basit. Şimdi gelelim index.php dosyamızı çalıştıralım. Ekranımıza aşağıdaki gibi sonuç gelecektir

MFSoftware Blog
feof() fonksiyonu
Hepinize iyi çalışmalar dilerim :) esen kalın

Dosya Sonuna Ulaşıldı

ve buradan da anlıyoruz ki dostlarım kodlarımız başarılı bir şekilde çalışmış 😊. Gelelim bir diğer fonksiyonumuza

fread() Fonksiyonu

Geldik bir diğer fonksiyonumuz olan fread() fonksiyonumuza. Aslında bu fonksiyonu yukarıdaki örneklerde sıklıkla kullandık 😄.İngilizce olarak "File Read" cümlesinden türetilen ve Türkçe karşılığı "Dosya Oku" olan bu fonksiyonun amacına bakacak olursak bizim dosyamızın içeriğinin okunmasında yardımcı olur. Çalışması için 2 adet zorunlu parametre alır. Bu parametrelere bakacak olursak:

  1. Parametre: Okunacak olan dosyamız (zorunlu)
  2. Parametre: Byte türünden uzunluk (genelde dosyamızın boyutu yazılır) (zorunlu)

şeklinde iki adet parametre alır. Şimdi gelelim metin.txt dosyası oluşturalım ve içerisine

MFSoftware Blog
fread() fonksiyonu
Hepinize iyi çalışmalar dilerim :) esen kalın

şeklinde içeriğini düzenleyelim. Daha sonrasında ise index.php dosyamıza gelelim ve

<?php

$dosya = fopen("metin.txt","r");   // dosyamızı sadece okunabilir şekilde ayarladık
echo fread($dosya,filesize("metin.txt"));   // dosyamızın ekrana bastırılması için dosya boyutumuz kadar uzunluk verdik

fclose($dosya);   // dosyamızı kapattık

?>

şeklinde kodlarımızı yazalım. Buradaki süreçte neler yazdık nasıl işlemler gerçekleşti gelin onlara bakalım

  1. Dosyamızı okunabilir şekilde açalım
  2. Dosyamızın içeriğini dosya boyutumuz kadar olarak okuyalım ve ekranımıza bastıralım
  3. Ve son olarak dosyamızı kapatalım

süreç tamamen bu şekilde işliyor dostlarım 😊. Şimdi gelelim ve bu kodumuzu çalıştıralım. Ekran çıktımız aşağıdaki gibi olacaktır

MFSoftware Blog fread() fonksiyonu Hepinize iyi çalışmalar dilerim :) esen kalın

şeklinde ekranımıza çıktımız gelecektir 😊. İşlemler bu kadar basit. Şimdi gelelim bir diğer fonksiyonumuza

fwrite() Fonksiyonu

Şimdi ise sıra geldi fwrite() fonksiyonumuza 😊. Önceki başlıkta demiştim ya yukarıda kullandık diye 😄 ama bu fonksiyonu kullanmadık 😊. İngilizce "File Write" cümlesinden türetilmiş olan ve Türkçe karşılığı "Dosya Yazma" olan bu fonksiyonumuz bizim belirttiğimiz dosya üzerine bizim belirttiğimiz yazıyı yazmamıza yardımcı olur 😊. Kullanımı çok zor veya karmaşık değildir tamamen basittir. Zorunlu olarak 2 parametre alır. Bunlara bakacak olursak:

  1. Parametre: Üzerine yazma işlemi yapacağımız dosyamız
  2. Parametre: Yazılacak İfademiz

şeklinde iki adet parametre alır. Şimdi bir metin.txt isimli boş bir metin dosyası oluşturalım. Daha sonra index.php dosyamıza gelelim ve

<?php

$dosya = fopen("metin.txt","w");   // dosyamızı sadece yazılabilir şekilde ayarladık
fwrite($dosya,"MFSoftware Blog");  // yazacağımız yazıyı girelim
fwrite($dosya,"\nfwrite() Fonksiyonu");  // yazacağımız yazıyı girelim
echo "metin.txt dosyamıza yazımız yazıldı";  // yazdırdıktan sonra uyarımızı verelim
fclose($dosya); // dosyamızı kapatalım
?>

şeklinde kodlarımızı yazdık. Şimdi bu kısımda süreç nasıl işledi diye merak ediyorsanız dostlarım gelin bunu inceleyelim

  1. Dosyamızı sadece yazılabilir olarak açalım
  2. fwrite() fonksiyonumuz ile yazılacak verimizi girelim
  3. Ekranımıza "metin.txt dosyamıza yazımız yazıldı" olarak mesajımızı bastıralım
  4. Daha sonra da dosyamızı kapatalım

şeklinde sürecimiz işledi 😊. Şimdi gelelim index.php dosyamızı çalıştıralım. Ekranımıza çıktı olarak

metin.txt dosyamıza yazımız yazıldı

mesajı bastırılacaktır. Daha sonra gerçekten yazıldı mı yazılmadı mı emin olmak için gelelim metin.txt dosyamıza bakalım. İçerisinde

MFSoftware Blog
fwrite() Fonksiyonu

şeklinde bir çıktı olacaktır 💯. İşlemlerimiz sorunsuz şekilde gerçekleşmiş. Bu kısım da tamam ise gelelim son fonksiyonumuza ve konumuzu noktalayalım 😊

fclose() Fonksiyonu

Veee geldik en son fonksiyonumuz olan fclose() fonksiyonumuza 😊. Yukarıda bunu da sıklıkla kullandık 😄. İngilizce "File Close" cümlesinden türetilen ve Türkçe karşılığı "Dosya Kapat" olan bu fonksiyonumuzun amacına bakacak olursak biz hani bir dosyamızı açıyoruz ya işte bundan sonra yani işimiz bitince dosyamızı kapatıyoruz 😊. İşte olay tamamen bu dostlarım. Zorunlu olarak bir parametre alır. Bu parametreye bakacak olursak:

  1. Parametre: Kapatılacak olan dosyamız (zorunlu)

şeklinde zorunlu bir parametre alır. Gelin yukarıdaki yaptığımız örneklerdeki gibi biz de burada işlemimizi ayarlayalım. Index.php dosyamızı açalım ve

<?php

$dosya = fopen("metin.txt","r");  // dosyayı okunabilir olarak açalım
fclose($dosya);  // dosyayı kapatalım

?>

şeklinde kodlarımızı yazalım. Burada süreç nasıl işliyor diye merak ediyorsanız gelelim buna bakalım

  1. Dosyamızı fopen() olarak açtık
  2. Daha sonra fclose() olarak kapattık

şeklinde kodlarımızı yazdık. İşlemler bu kadar basit dostlarım 😊. Bütün işlemler bu kadar basit 😊

 

Eveeeet bu yazımızda da php programlama dillerinde dosya işlemlerinde kullanılan fonksiyonlardan dilim döndüğünce anlatmaya çalıştım. Umarım faydalı olmuşumdur. Eksik veya hatalı bir bilgi aktarımı yapmış isem düzeltilmesi için benimle iletişime geçmekten çekinmeyin 😊. Başlarda biraz karmaşık veya zor gelebilir bu konu anlıyorum dostlarım öğrenme sürecinde bu şeylerin olması normaldir. Sizlerden bu noktada istediğim her yazımın altında da dediğim gibi "İstikrarlı ve Azimli Olmalı, Bolca Pratik Yapmalısınız 😊". Bu dediklerimi hayat felsefeniz yaptığınız sürece başarı sizin için kaçınılmaz olacaktır 😊.

Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim :)

Muhammed Fatih BAĞCIVAN
Yazar Hakkında

Kendi Halinde Bir Backend Developer

Önceki YazıNode.js MongoDB Veri Ekleme İşlemi
Sonraki YazıLaravel Controller İşlemleri
Yorumlar (0)
Bu Yazıya Ait Hiçbir Yorum Bulunamadı (veya admin onaylamadı). İlk Yorum Yapan Sen Ol
Yorum Yapabilirsiniz