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.

KipAçıklaması
rDosyayı okumak için açar. (read)
r+Dosyayı hem okumak hem de yazmak için açar. (read)
wDosyayı 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)
aDosyayı 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)
xDosyayı 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.