24 Mayıs 2014 Cumartesi

Php'de Dosyalarla İşlem Yapmak

Bu derste php üzerinden sistemde dosya oluşturmayı,oluşturulan dosyayı silmeyi ya da düzenlemeyi öğreneceğiz. 

Php'de Dosya İzinleri


Dosya yazma-silmeye başlamadan önce dosya izinleri hakkında bir kaç bilgimizin olması gerekmektedir. 
Php'de öyle her dizine kafamıza göre müdahale edemeyiz.Şimdi localhost üzerinden çalıştığımız için sorun çıkmayacaktır fakat gerçek bir hostta çalışsaydık işte o zaman ciddi problemlerle karşılaşabilirdik. 

Şimdi bu yazma-düzenleme-silme işlemlerine yapmamamız için Çalışma yapacağımız klasöre CHMOD 777 İznini vermemiz geerkmektedir.Tabi ki biz şuan kendi pcmizin localhostunda çalıştığımız için bunları yapmaya gerek yok fakat ftp sunucusu üzerinden başka bir serverda çalışıyor olsaydık o zaman   bunu yapmak mecburiyetindeydik.Ftp üzerinden bir dosyaya 777 iznini vermek için o dosyaya sağ tıklayıp permissions(izinler) diyip oradaki değer kısmına 777 yazmamız yeterlidir. 

Eee şimdi biz bu dosyaya 777 iznini verdik yani sistemdeki tüm yazma,silme ve değiştirme yetkilerini vermiş oluyoruz.Bu yüzden güvenlik için bu dosyaya veri girişini sıkı denetlemeliyiz aksi taktirde yazdığımız sistemin tümü bir dış müdahaleyle(yani hack :D ) çöpe gidebilir. 

Dosya Oluşturma


Dosya oluşturup çalıştırmak için touch() fonksiyonunu kullanacağız.Touch() fonksiyonu sistemde bir dosya oluşturmaya,eğer o dosya daha önceden mevcutsa son değişim tarihini değiştirmeye yarar.Tek bir parametre ile çalışmaktadır.Bu parametreye de tabiki dosyanın adını giriyoruz. 


 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<?php
touch
('ilkdosyamiz.txt'); ?> 



Dosyaları Açmak ve Kapatmak


Dosyaların içeriğini okumadan ya da değiştirmeden önce o dosyaları açmamız gerekmektedir.Gerekli işlemlere başlamadan önce yapacağımız ilk işlem dosyayla bağlantı kurmak yani hedef dosyamızı açmaktır. 

İşte burada fopen() fonksiyonunu kullanacağız.Bu fonksiyonu kullanırken iki parametre kllanacağız.Birincisi erişeceğimiz dosyayı,ikinci parametre ise dosya açma kipini yazacağız. 

Peki,nedir bu dosya açma kipleri ? 

Kip Açıklaması 
r Dosyayı okumak için açar. (read) 
r+ Dosyayı hem okumak hem de yazmak için açar. (read) 
w Dosyayı 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) 
a Dosyayı 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) 
x Dosyayı 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. 

Ve en önemlisi açtığımız dosyaları kapatmayı unutmamalıyız.Eğer kapatmazsak bir başka dosyayı açmaya çalıştığımızda php hata verebilir.Açtığımız dosyayı kapatmak için kullanacağımız fonksiyonun adı ise fclose() fonksiyonur.Tek parametre ile çalışır ve bu parametreye fopen() fonksiyonunu kullanırken yazdığımız dosyanın değişkenini yazarız. 



 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<?php
$dosya 
fopen('ilkdosya.txt''r'); fclose($dosya); ?> 



İçerik Okuma


Dosya yazmak için w kipini ve fwrite() fonksiyonunu kullanacağız. Yanlı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. 

Eğer daha önce var olan içerik kaybolmadan yazmak istiyorsan o zaman a kipini kullanman gerekecek. 

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. 


 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<?php
$dosya 
fopen('merhaba.txt''w'); fwrite($dosya'Merhaba Dünya'); fclose($dosya); ?> 



Yukarıdaki örneği çalıştırdığımızda merhaba.txt adında dosyamızın içeriğine Merhaba Dünya yazmış olduk. 

Bir başka örnek daha verelim: 


 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<?php for($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 eklemiş olduk. 

Dosyaları Silme


Dosya oluşturma fonksiyonunun zıttı olarak göreceğimiz unlink() fonksiyonu ile istediğiniz dosyayı yok edebilirsiniz. 

Kullanımı oluşturma fonksiyonu gibi basit ve tek parametreli. 



 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<?php
unlink
('merhaba.txt'); ?> 



Diğer örneklerde üzerinde çalıştığımız merhaba.txt dosyasını siler. 

Dosya Daha Önceden Oluşturulmuş mu?


Dosyaların varlığından haberdar olmak, eğer varsa değiştirmek yoksa oluşturmak gibi işlemler yapmak için file_exists fonksiyonunu kullanacağız. 

Parametresine gireceğimiz dosya adında bir dosya mevcut ise TRUE değil ise FALSE dönecektir. Hemen örnek ile gösterelim: 



 Kod Çizelgesi     Kod Dili: phpHepsini Seç

<?php if(file_exists('merhaba.txt')) {
   echo 
'Dosyamız var';
} else {
   echo 
'Dosyamız yok';
?> 



Bir önceki konuda merhaba.txt dosyasını sildiğimiz için ekranda Dosyamız yok yazacaktır. 
Bir sonraki derste görüşmek üzere hoşçakalın!!!

Hiç yorum yok:

Yorum Gönder