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 😊
- Parametre: Dosyanın Yolu ve İsmi (../project/deneme vs) (zorunlu)
- 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
- Klasör oluşturma fonksiyonumuzu yazdık, parametreleri atadık ve burdan gelen sonucu (boolean sonuç) bir değişkene aktardık
- 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
- 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ı
- 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
- 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
- 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
- Proje dizinimiz içerisindeki dosyayı readfile() fonksiyonu ile okuduk ve içeriğini bir değişkene aktardık
- 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
- Parametre: Üzerinde işlem yapılacak olan dosyamızın yolu (../project/deneme.txt gibi) (zorunlu)
- 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 a 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
- Dosyamızı yani metin.txt yi sadece okunabilir olarak açtık
- Dosya içeriğini dosyamızın boyutu kadar okuduk
- 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
- 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 😊
- Metin.txt dosyamızı okunabilir olarak açtık
- Tek bir satırını aldık
- 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
- 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
- Dosyamızı okunabilir şekilde açtık
- Bir while döngüsü açtık ve dosyamızın sonuna geldik mi gelmedik mi diye !feof() fonksiyonumuzu kullandık
- Koşul sağlandığı taktirde döngü içerisinde fgets() ile satırları tek tek yazdırdık
- 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:
- Parametre: Okunacak olan dosyamız (zorunlu)
- 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
- Dosyamızı okunabilir şekilde açalım
- Dosyamızın içeriğini dosya boyutumuz kadar olarak okuyalım ve ekranımıza bastıralım
- 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:
- Parametre: Üzerine yazma işlemi yapacağımız dosyamız
- 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
- Dosyamızı sadece yazılabilir olarak açalım
- fwrite() fonksiyonumuz ile yazılacak verimizi girelim
- Ekranımıza "metin.txt dosyamıza yazımız yazıldı" olarak mesajımızı bastıralım
- 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:
- 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
- Dosyamızı fopen() olarak açtık
- 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 :)
Yazar Hakkında
Kendi Halinde Bir Backend Developer