PHP Dersleri #26 – Dosya (File) İşlemleri


Herkese merhaba arkadaşlar, kodportali.com PHP derslerine kaldığı yerden tüm hızıyla Dosya İşlemleri ile devam ediyoruz.

PHP ‘de Dosya Dizin İşlemleri Ne İşimize Yarıyacak?

Dosya ve dizin işlemleri sizin sunucunuzdaki veya yerel bilgisayarınızdaki dosyaları ve dizinleri kontrol etmenize yarıcaktır. Bu yazıda öğrenecekleriniz ile faydalı dosyalarla alakalı uygulamalar yapabilirsiniz. Bu yazımızda dosya silme, ekleme, değiştirme, açma, kapamayı öğreneceğiz.

PHP Dosya İzinleri

Dosya izinleri yerel bilgisayarınızdaki sunucuda varsayılandır fakat eğer bir hostta çalışıyorsanız bu izinler günenlik nedeniyle büyük ihtimalle kısıtlanmıştır. Ve bu izinler olmadan dosya ve dizinleri okuyamaz, yazamaz veya silemezsiniz. Kısaca nasıl izin vereceğinizi anlatacağım. Çalışacağımız dosyaya CHMOD yani Change Mode dediğimiz değiştirme modunu uygulamamız gerekir. Bunun için FTP’ye girip dosya veya dizine sağ tıklayıp izin değerlerine “777”  yazmanız yeterli olucaktır. Bu sayede dosya ve dizinlerde yazma, okuma, silme gibi izinleri elde etmiş olursunuz.

İçi Boş Dosya Oluşturmak

Sunucunuzda olmayan bir dosyayı oluşturmak için touch() fonksiyonunu yani türkçe anlamı ile dokunmak, yani var olmayan bir dosyayı oluşturma fonksiyonunu kullanacağız.

Yukarıdaki örneğimizde belirttiğimiz dosya adı ilk geçerli dizine “kodportali.txt” adında boş bir dosya oluşturur daha sonra belirttiğimiz dosya yolunda “kodportali.txt” adında boş bir dosya oluşturur. Yani touch() fonksiyonu içine parametre olarak tam dosya yolunu giriyoruz. Kodumuzu çalıştırdığımız zaman otomatik olarak girdiğimiz dosya yolunda veya belirtmeyip direk dosya adını yazdıysak geçerli dizine içi boş dosya oluşturucaktır.

PHP Dosyaları Açmak ve Kapatmak

İstediğimiz dosyanın içeriğini okuyabilmek, değiştirebilmek veya silebilmek için dosyayı önce açmamız gerekir. Bu işlem için fopen() ve fclose() fonksiyonunu kullanacağız. Ama öncelikle dosya açmak için belirli kipler bulunur, bunlar dosyaya erişerek tam olarak ne yapmak istediğimizi söylememiz için gereklidir. Dosya kiplerinin listesi:

KipKip’in Açıklaması
r – (read)Dosyayı okumak için açarsınız.
r+ – (read+)Dosyayı hem okumak hem yazmak için açarsınız.
w – (write)Dosyayı yazmak için açarsınız ve var olan içeriği silersiniz.
w+ – (write+)Dosyayı hem okumak hem yazmak için açarsınız ve var olan içeriği siler ve baştan yazarsınız.
a – (append)Dosyayı yazmak için açar ve içeriği silmeden sonuna ekleyerek yazarsınız.
a+ – (append+)Dosyayı hem okumak hemde yazmak için açarsınız ve içeriği silmeden sonuna ekleyerek yazarsınız.
Dosyayı oluşturur ve yazmak için açarsınız ama dosya zaten bulunuyorsa FALSE döndürür.
x+Dosyayı oluşturur ve yazmak ve okumak için açarsınız ama dosya zaten bulunuyorsa FALSE döndürür.

Hadi örneğe geçelim.

Böylece kolayca dosyamıza erişim sağlamış olduk, unutmayın dosyayı bir sonraki açışlarımızda sorunlarla karşılaşmamak için gerekli işlemlerimizi yaptıktan sonra dosyadan çıkış yapmayı unutmuyoruz.

Dosya İçeriğini Okumak

Bu işlem için 2 yöntem bulunuyor. Size hangisi kolay geliyorsa onu kullanabilirsiniz.

a. fread() Fonksiyonu İle

Yukarıdaki örneğimizde önce dosyamıza ‘r’ kipi ile erişim sağladık yani sadece okumak için ardından fread() fonksiyonu ile dosyamızın içeriğini okuduk. Fonksiyonumuzun ilk parametresine erişim sağladığımız dosyayı, ikinci parametresine ise okumak istediğimiz boyutunu biz filesize() fonksiyonu ile dosyanın boyutunu alıp hepsini okumak istediğimizi belirttik. Ardından okuduğumuz içeriği bir değişkene atadık ve ekrana yazdırıp dosyamızdan çıkış yaptık.

b. file_get_contents() Fonksiyonu İle

Bu fonksiyon fread() ‘a göre çok daha kolay. Dosyanın hepsini okumak için sadece bir parametre giriyoruz. Yani tek satır kod. Hemen örnek ile açıklayalım.

Gördüğünüz gibi oldukça kolay, dosyaya erişim sağlayıp ne kadarını okumak istediğimizi belirtmeden ve işlemlerden sonra çıkış yapmamız gerekmeden direk tek satır kod ile böyle içeriği çekebilirsiniz. Bu fonksiyon ile alakalı daha ayrıntılı bilgi için buraya tıklayabilirsiniz.

Evet bu dersimizinde burada sonuna geldik. Herhangi bir sorunuz olursa yorumlarda sorabilirsiniz.

Dosyaya Yazmak

Bu işlem içinde 2 yöntem bulunuyor. Size hangisi kolay geliyorsa onu kullanabilirsiniz.

a. fwrite() Fonksiyonu İle

Yukarıdaki örneğimizde önce ‘w’ kipi ile dosyamıza erişim sağladık yani içindeki içeriği silip tekrar yazmak için erişim sağladık. fwrite() fonksiyonumuzun ilk parametresine erişim sağladığımız dosyayı, ikinci parametresine ise yazıcağımız içeriği yazdık. İşimizi bitirdiğimiz zaman ise en son fclose() ile dosyadan çıkış yaptık. Dosyamızı açtığınız zaman içinde ‘Kod Portalı – PHP Dersleri, Hoşgeldiniz.’ yazıcaktır.

b. file_put_contents() Fonksiyonu İle

Bu fonksiyonda yine tek satır ve daha kolay. Bu fonksiyon hakkında unutmamanız gereken bir kaç minik ayrıntı var. Eğer girdiğiniz dosya yoksa dosyayı oluşturur ve içine belirttiğiniz içeriği yazar. Eğer FILE_APPEND seçeneği aktif değilse ve dosyanın içeriği doluysa ‘w’ kipi ile dosyaya erişim sağlar ve direk sıfırdan yazar.

Yukarıdaki örneğimizdede görüldüğü gibi ilk parametreye dosyamızın adını, ardından içeriğini yazdık. Eğer dosyamıza istisna ile yazıcaksak mesela dosyanın sonuna yazmak gibi üçüncü parametreye gerekli flag’ı giriyoruz. Bir dosyanın sonuna yazma yani ‘a’ kipi ile yazmak istediğimiz için FILE_APPEND seçeneğini ekledik. Dosyayı açtığınız zaman içinde ‘Kod Portalı – PHP Dersleri, Hoşgeldiniz.(Alt Satırda)Hoşgeldiniz.’ yazıcaktır. Bu fonksiyon hakkında daha detaylı bilgiye ulaşmak için buraya tıklayabilirsiniz.

Dosyaları Silmek

Bu işlem oldukça kolaydır, bunun için unlink() fonksiyonunu kullanacağız. Girmemiz gereken tek parametre var oda dosyanın adı.

Bu sayede dosyamızı silmiş olduk.

Dosyanın Varlığını Kontrol Etmek

Bu işlemde oldukça kolaydır. file_exists() fonksiyonu ile tek parametre girerek kolayca kontrol edebiliriz. Girmemiz gereken tek parametre dosyanın adıdır, bunun sonucunda bize eğer dosya var ise true, yok ise false sonucunu döndürecektir.

 

Evet bu dersimizinde burada sonuna geldik. Herhangi bir sorunuz olursa yorumlarda sorabilirsiniz.

Sitemizdeki tüm PHP dersleri için buraya tıklayabilirsiniz.

[Toplam:0    Ortalama:0/5]

Sizin Tepkiniz Nedir?

süper süper
0
süper
bilgilendirici bilgilendirici
0
bilgilendirici
beğenmedim beğenmedim
1
beğenmedim
beğendim beğendim
0
beğendim
Düşündürücü Düşündürücü
0
Düşündürücü
Anıl Mısırlıoğlu
Yazılım Mühendisi

0 Yorum

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

Bir format seçin
Kişisel Test
Kişiliğe dair bir şey ortaya çıkarmayı amaçlayan sorular dizisi
Basit Test
Bilgiyi kontrol etmek isteyen doğru ve yanlış cevaplı sorular dizisi
Anket
Karar vermek veya görüş belirlemek için oylama yapmak
Serbest Yazı
Yazılarınıza Görseller Bağlantılar Ekleyebilirsiniz
Liste
Klasik İnternet Listeleri
Geri Sayım Listesi
Klasik İnternet Geri Sayım Listeleri
Açık Liste
Kendi öğenizi gönderin ve en iyi sunum için oy verin
Oylanabilir Liste
En iyi liste öğesine karar vermek için yukarı veya aşağı basın
Fotoyla Anlatım
Kendi resimlerinizi yükleyin ve birşeyler anlatın
Video
Youtube, Vimeo veya Vine Kodları
Ses
Soundcloud veya Mixcloud İçerikleri
Görsel
Fotoğraf veya GIF
GIF
GIF Formatı