Her dilde olduğu gibi PHP de de dosya dizin işlemleri için özel kütüphaneler, fonksiyonlar mevcut. İşte bu fonksiyonları kullanarak nasıl dosya dizin oluşturulur, silinir, düzenlenir bunları bu yazıda göstermeye çalışacağız.
PHP’de Dosya İşlemleri
Bu konuya geçmeden dosya dizin izin ve yetkilerinden kısaca bahsedelim. Güvenlik açısından bir önlem olan dosya izinleri genelde uzak sunucuya bağlandığımızda karşımıza çıkar. PHP Linux işletim sistemlerinde çalıştığı için FTPden veya yönetim panelinden CHMOD 777 vererek o dosyada okuma yazma silme işlemlerinin hepsini açmış oluruz. burada 777 user group other a sırasıyla read write execute izinleri için 111 111 111 anlamına gelir. mesela 755 ise 111 101 101 olarak 2 lik tabana çevirdiğimizde usera oku yaz çalıştır izinleri verirken, group ve othera oku ve çalıştır izninleri verir.
PHP ile dosya oluşturmak
touch('dosya.txt');
fonksiyonu ile dosyayı sıfırdan oluşturabiliriz.
PHP ile dosyaları açmak ve kapatmak
Dosyayı ilk olarak açmamız gerekiyor ve bunun için fopen fonksiyonunu kullanıyoruz. fopen parametre olarak ilk dosya adı sonra dosyayı ne için açtığımızı belirten kipi alıyor. 8 tane kip var bunlar:
- r ->dosya okumak için açiılır.
- r+ ->dosya okuma ve yazma için açılır.
- w ->yazma işlemi için açılır. eskiler silinir.
- w+ ->yazma okuma için eski içerik silinir.
- a ->yazma için açar. eski içerik silinmez ekleme yapar.
- a+ ->yazma ve okuma için, ekleme yapar.
- x ->dosya oluşturmak ve yazmak için, dosya zaten varsa FALSE döner.
- x+ ->dosya yoka oluşturur yazmak ve okumak için açar.
$file = fopen('dosya.txt', 'r');
fclose($file);
PHP ile dosyaların içeriğini okumak
fopen r kipi ile açtığımız dosyanın içeriğini okumak için fread kullanırız. fread’in ikinci parametresi ne kadarlık okuma yapılacağını belirtmemizi sağlar.
$file = fopen('dosya.txt', 'r');
$icerik = fread($file, filesize('dosya.txt'));
echo $icerik;
fclose($file);
PHP ile dosyalara yazma
fopen w+ kullanarak ekleme yapmak için açıyorduk. fwrite ile de ekleme yapıyoruz.
$file = fopen('dosya.txt', 'w+');
fwrite($file, 'Merhaba Dünya');
fclose($file);
PHP ile dosyaları silme
Bunun için ise unlink fonksiyonunu kallanıyoruz.
unlink('dosya.txt');
PHP’de dosyaların varlığını kontrol etmek
file_exists fonksiyonunu bu iş için kullanıyoruz. Parametresine girilen dosya var ise TRUE yok ise FALSE döner.
PHP’de Dizin İşlemleri
PHP ile bir dizin oluşturmak
Dizin oluşturmak için mkdir kullanılır ve ikinci parametre CHMOD izinleri için girilebilir ama tek parametre ile de çalışır bu fonksiyon.
mkdir('dizin','0777');
PHP ile bir dizini silmek
Sadece Boş dizinleri silmek için kullanılabilir olan rmdir fonksiyonu bulunuyor. Dolu dizinleri silmek için önce yukarda anlatılan unlink kullanılır.
rmdir('dizin');
PHP ile dizinlerin ya da dosyaların adını değiştirme ve taşıma
Bu işlemler için tek bir fonksiyon mevcut. O da rename. Dosyalarda da dizinlerde de kullanılabir. Taşıma işleminde ilk parametre olarak eski yeri, ikinci parametre olarak taşınacak yeri veririz.
rename('dizineski/dosyaeski.jpg', 'dizinyeni/dosyayeni.jpg');
PHP ile dizin içerisindekileri okuma
opendir ile dizini açar ardınadan readdir ile while döngüsü yaratıp tek tek tüm dosyalara erişiriz.
$dir = opendir('dizin');
while($file = readdir($dir)) {
echo $file;
}