Php Dosya Ve Klasör İşlemleri
Merhaba arkadaşlar sahmatajans.com için hazırladığımız php derslerimizde bu ders Dosya ve Klasör işlemlerine başlangıç yapacağız. Öncelikle klasör işlemlerinden başlayalım. Klasör işlemlerinde önemli olan klasörün dosya sisteminde nerede olduğudur. Bir klasörün yerini belirlemek için absolute path ve relative path olmak üzere iki yöntem vardır.
Absolute Path
Absolute path yönteminde klasörün dosya sistemindeki tam yolu kullanılır.
Örneğin:
C:\wamp\www\sahmatajans C:\wamp\www\sahmatajans\dersler http://sahmatajans.com/wp-content/ http://sahmatajans.com/wp-content/plugin
Biz mobilhanem klasöründeysek dersler klasörüne gideceksek absolute path yöntemi ile C:\wamp\www\sahmatajans\dersler şeklinde erişiriz.
Relative Path
Relative pathda ise bir klasörün bizim içinde bulunduğumuz klasöre göre konumu kullanılır.
Örneğin şöyle bir dosya sistemi yapımız olsun.
C:\wamp\www\sahmatajans C:\wamp\www\sahmatajans\dersler C:\wamp\www\sahmatajans\deneme C:\wamp\www\sahmatajans\aaa
Biz sahmatajans klasöründeysek dersler klasörüne gitmek için relative path yöntemi ile dersler/ şeklinde gideriz.
Php Klasörler İçinde Gezinmek
Klasörler içerisinde gezinmek neredeyse bütün programlama dillerinde aynıdır. Genellikle mevcut bir klasörün içerisindeysek relative path, mevcut bir klasörde değil isek absolute path kullanırız.
- Önceki klasöre gitmek için ../
- iki önceki klasöre gitmek için ../../
- Bulunduğumuz klasör ./
- Sonraki klasörler ./a/b yada a/b
Şimdiye kadar verdiğimiz bilgiler dosya sistemiyle alakalı genel bilgilerdi arkadaşlar.
Php Klasör Oluşturma
Php de klasör oluşturmak için mkdir() fonksiyonu kullanılır.
mkdir(‘klasör adı’,CHMOD); Chmod değeri klasör üzerinde yetkilendirme yapar chmod değeri olmadan sadece klasör adını yazarakta klasör oluşturabiliriz.
Chmod değerlerinden bu dersimizde bahsetmeyeceğimden chmod değerini kullanmayacağız.
Örnek:
<?php $olustur = mkdir("sahmatajans"); if($olustur) echo "Klasör Oluşturuldu."; else echo "Klasör Oluşturulamadı"; ?>
Kodumuzu yazdıp çalıştırdığımızda index.php dosyamızın bulunduğu kısımda bir sahmatajans klasörü oluşacaktır.
Kodu iki kez çalıştırırsak bu klasör zaten var hatası alacağız. Bunun için dosya varmı yokmu kontrolü yapmamız gerekir.
file_exist(“PATH”) fonksiyonu verilen pathte dosya veya klasör var ise geriye ture, yok ise false döndüren bir boolean fonksiyondur.
Örnek:
$klasorYol = "sahmatajans"; if(!file_exists($klasorYol)) { $olustur = mkdir("sahmatajans"); if($olustur) echo "Klasör Oluşturuldu."; else echo "Klasör Oluşturulamadı"; }else { echo "Bu Klasör Zaten Var !"; }
Php Dosya Veya Klasör Taşıma – İsim Değiştirme
Dosya veya klasör taşıma işlemi için taşınacak klasörün var olup olmadığı kontrolünü yapmanız her zaman gerekir. Örneğin:
$klasorYol = "sahmatajans"; $yeniKlasorYol = "ders/sahmatajans"; if(file_exists($yeniKlasorYol)) { $tasi = rename($klasorYol,$yeniKlasorYol); if($tasi) echo "Klasör Taşındı."; else echo "Klasör Taşınamadı."; }else { echo "$yeniKlasorYol Konumu Bulunamadı."; }
Dosya adı değiştirme örneği:
$klasorYol = "sahmatajans"; if(rename($klasorYol,"sahmatajans2")) { echo "Klasör Adı Değiştirildi"; }else { echo "İsim Değiştirilemedi."; }
Php Klasör Silme
rmdir fonksiyonu ile klasörü silebiliriz. Klasörü silmek için klasörün içerisini boş olmak zorundadır. Aksi takdirde klasör silinmez ve hata mesajı alırız.
örnek:
if(rmdir("sahmatajans2")) { echo "Klasör Silindi"; }else { echo "Klasör Silinemedi."; }
Php Klasör içerisindeki dosya ve klasörleri listeleme
dosya ve klasörleri listelemek için opendir ve readdir fonksiyonlarını kullanırız.
opendir(PATH) verilen pathteki klasörü açar. geriye içeriği döndürür.
readdir() opendir fonksiyonundan gelen içeriği alır ve okur.
Örneğin: Bulunduğumuz klasörün içeriğini listeleyelim.
$ac = opendir("./"); // bulunduğumuz klasörü açsın while($veri = readdir($ac)) echo $veri."<br/>";
Burada ilk çıkan . ve .. işaretleri bir alt dizini ve şuanki dizini ifade eder.
Bir verinin dosyamı klasör mü olduğunu öğrenmek için is_file() fonksiyonunu kullanırız.
is_file(PATH) verilen path deki verinin dosya mı klasör mü olduğuna bakar dosya ise true döndürür.
Yukarıdaki örneğimizde klasörlerin yanına klasör dosyaların yanına dosya yazalım.
$ac = opendir("./"); // bulunduğumuz klasörü açsın while($veri = readdir($ac)) { $tip = is_file($veri) ? "(Dosya)" : "(Klasör)"; echo "$veri $tip <br/>"; }
Php Dosya Oluşturma
Phpde touch() fonksiyonu ile dosya olutşrurulur.
touch(DOSYA_ADI) parametre olarak dosya adını alır ve dosya oluşturulursa geriye true değeri döner.
örneğin sahmatajans.txt dosyasını oluşturalım.
if(touch("sahmatajans.txt")) echo "Dosya Oluşturuldu"; else echo "Dosya Oluşturulamadı";
Php ile Dosya Açmak
Phpde dosya içeriğini açmanın bazı seçenekleri vardır. değiştirmek için açmak, sonuna eklemek için açmak gibi gibi. Bu özellikleri aşağıdaki tabloda görebilirsiniz.
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. |
Php de dosyayı fopen ile açarız.
fopen() iki parametre alır. Birinci parametre dosya yolu ikinci parametre ise yukarıdaki tablodaki kiplerden biridir.
fopen() tek başına bir işe yaramaz sadece dosya ile bağlantı kurar. Şimdi fopen fonksiyonunu işe yarar bir hale getirelim.
fwrite(ACMA_DEGISKENI,VERI ) fwrite dosyaya veri yazar. İki parametre alır. Birinci parametre dosya açma yani fopen fonksiyonu, ikinci değişken ise yazacağın veridir.
fclose(ACMA_DEGISKENI) Açılan bir dosyayı kapatır. parametre olarakta fopen fonksiyonunun değişkenini alır.
Örneğin: sahmatajans.txt dosyasına mobilhanem.com yazıp kaydedelim.
<?php $ac = fopen("sahmatajans.txt","a+"); fwrite($ac,"sahmatajans.com"); fclose($ac); ?>
Dosya içerğine bakarsak sahmatajans.com yazdığını görürüz.
Şimdide dosya içeriğini okuyalım.
fread(OPEN, BAYT) fopen fonksiyonu ile dosya okuruz. Parametre olarak dosya open bağlantısı ve kaç bayt okunacağını alır. geriyede veriyi döndürür.
filesize($dosya) parametre olarak aldığı dosyanın boyutunu döndürür.
<?php $ac = fopen("sahmatajans.txt","r"); $icerik = fread($ac, filesize('sahmatajans.txt')); echo $icerik; fclose($ac); ?>
Evet arkadaşlar genel olarak dosya sisteminden dosya ve klasör işlemlerinden bahsettik ve bir dersimizin daha sonuna geldik. Bir sonraki dersimiz olan Php Dersleri – Temel String Fonksiyonları dersimizde görüşürüz.
Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı yine konu altından sorabilirsiniz.