Dosya i\u015flemleri, PHP kodlar\u0131 ile dosyaya veri yazma, dosya i\u00e7eri\u011fini okuma\/de\u011fi\u015ftirme, dosya olu\u015fturma\/silme, dosya listesi okuma vb i\u015flemlerin yap\u0131labilmesini sa\u011flar.<\/p>\n
Basit veritaban\u0131 uygulamalar\u0131 yapmak, web sitesi ziyaret loglar\u0131 olu\u015fturmak, basit ziyaret\u00e7i defteri yapmak i\u00e7in dosya i\u015flemlerini kullanabilirsiniz.<\/p>\n
Konular<\/p>\n
<\/p>\n
Dosyalarla \u00e7al\u0131\u015fmak i\u00e7in \u00f6ncelikle dosyan\u0131n a\u00e7\u0131lmas\u0131 gerekmektedir.<\/p>\n
$f=fopen(“dosyayolu\/dosyaadi.uznt”,$acmasekli);<\/em><\/p><\/blockquote>\n
$acmasekli,<\/em> fopen<\/strong> fonksiyonun dosya eri\u015fiminde kullanaca\u011f\u0131 y\u00f6ntemi belirler.<\/p>\n
\n
- r : Dosyan\u0131n sadece okuma i\u00e7in a\u00e7\u0131lmas\u0131n\u0131 sa\u011flar. \u0130\u015faret\u00e7i dosya en ba\u015f\u0131na yerle\u015ftirilir.<\/li>\n
- r+ : Dosyan\u0131n hem okuma hem de yazma i\u00e7in a\u00e7\u0131lmas\u0131n\u0131 sa\u011flar. \u0130\u015faret\u00e7i dosya ba\u015f\u0131na yerle\u015ftirilir.<\/li>\n
- w : Dosyan\u0131n sadece yazma i\u00e7in a\u00e7\u0131lmas\u0131n\u0131 sa\u011flar. Dosya boyutu s\u0131f\u0131r olarak ayarlan\u0131r. E\u011fer dosya bulunamazsa, olu\u015fturulur.<\/li>\n
- w+ : Dosyan\u0131n hem okuma hem de yazma i\u00e7in a\u00e7\u0131lmas\u0131n\u0131 sa\u011flar. Dosya boyutu s\u0131f\u0131r olarak ayarlan\u0131r. E\u011fer dosya bulunamazsa, olu\u015fturulur.<\/li>\n
- a : Dosyan\u0131n ekleme i\u00e7in a\u00e7\u0131lmas\u0131n\u0131 sa\u011flar. \u0130\u015faret\u00e7i dosya sonuna yerle\u015ftirilir.<\/li>\n
- a+ : Dosyan\u0131n hem okuma hem de ekleme i\u00e7in a\u00e7\u0131lmas\u0131n\u0131 sa\u011flar. \u0130\u015faret\u00e7i dosya sonuna yerle\u015ftirilir. E\u011fer dosya bulunamazsa olu\u015fturulur.<\/li>\n
- x, x+ : Dosyan\u0131n s\u0131f\u0131rdan olu\u015fturulup, okuma \/ okuma ve yazma i\u00e7in a\u00e7\u0131lmas\u0131n\u0131 sa\u011flar. E\u011fer dosya varsa, hata verir.<\/li>\n
- c, c+ : Varolan dosyan\u0131n silinmeden a\u00e7\u0131lmas\u0131n\u0131, olmayan dosyan\u0131n olu\u015fturulmas\u0131n\u0131 sa\u011flar. \u0130\u015faret\u00e7i dosya ba\u015f\u0131na yerle\u015ftirilir. Yazma \/ okuma ve yazma i\u00e7in a\u00e7\u0131lmas\u0131n\u0131 sa\u011flar.<\/li>\n<\/ul>\n
<\/a>Dosyadan Okuma<\/h3>\n
Dosya okuma i\u00e7in a\u00e7\u0131ld\u0131ktan sonra, fread <\/em>komutu yard\u0131m\u0131 ile, dosyadan okuma i\u015flemi ger\u00e7ekle\u015ftirilir. fread<\/em> <\/strong>komutu okudu\u011fu verileri e\u015fitlendi\u011fi de\u011fi\u015fkene aktararak kullan\u0131ma sunar,. Bu veriler \u00fczerinde istenilen i\u015flemler ger\u00e7ekle\u015ftirilebilir.<\/p>\n
Kullan\u0131m\u0131:<\/p>\n
$f=fopen(“dosyayolu”,”r”);
\n$fs=filesize($f); \/\/Dosya Boyutunu bu \u015fekilde \u00f6\u011frenebiliriz.
\n<\/em>$okunan=fread($f,$fs);<\/em><\/p><\/blockquote>\nfread<\/strong> komutu iki parametre al\u0131r; Birinci parametre a\u00e7\u0131lan dosya tutucusudur ($f<\/em>), \u0130kinci parametre, okunacak olan veri miktar\u0131n\u0131 byte<\/strong> t\u00fcr\u00fcnde belirler. Dosyan\u0131n tamam\u0131n\u0131 okumak yerine, belirli bir miktar\u0131n\u0131 okuma imkan\u0131 sa\u011flar. Dosyan\u0131n tamam\u0131n\u0131n okunabilmesi i\u00e7in filesize($f)<\/em><\/strong> komutu ile a\u00e7m\u0131\u015f oldu\u011fumuz dosyan\u0131n boyutunu \u00f6\u011frenebiliriz.<\/p>\n
\u0130\u015fimiz bittikten sonra a\u00e7m\u0131\u015f oldu\u011fumuz dosyay\u0131 kapatma<\/a>y\u0131 unutmayal\u0131m.<\/p>\n
<\/a>Dosyaya Yazma<\/h3>\n
Dosyaya veri yazmak i\u00e7in \u00f6ncelikle dosyam\u0131z\u0131 yaz\u0131labilir \u015fekilde a\u00e7mam\u0131z gerekmektedir. Daha sonra dosyaya yazmak istedi\u011fimiz veriyi fwrite<\/em> komutu ile dosyaya aktarabiliriz.<\/p>\n
Kullan\u0131m\u0131:<\/p>\n
$f=fopen(“dosyayolu”,”w”); <\/em>veya $f=fopen(“dosyayolu”,”a”)<\/em><\/p>\n
fwrite($f,$veri);<\/em><\/p>\n
fwrite<\/strong> komutu iki parametre al\u0131r; birinci parametre a\u00e7\u0131lan dosya tutucusudur ($f)<\/em>, ikinci parametre ise dosyaya yaz\u0131lacak olan veriyi i\u00e7erir ($veri).<\/em><\/p>\n
Burada dikkat edilmesi gerekn nokta, dosyay\u0131 a\u00e7arken kullanaca\u011f\u0131m\u0131z a\u00e7ma t\u00fcr\u00fcd\u00fcr. w<\/strong> t\u00fcr\u00fcnde a\u00e7\u0131lan dosyalara yeni bir veri yaz\u0131ld\u0131\u011f\u0131 zaman eski veriler silinecektir. a<\/strong> t\u00fcr\u00fcnde a\u00e7\u0131lan dosyalara yeni veri yaz\u0131ld\u0131\u011f\u0131nda; yaz\u0131lan yeni veri eski verinin sonuna eklenir.<\/p>\n
\u0130pucu: Log kay\u0131tlar\u0131 gibi verileri dosyaya yazarken a (sonuna ekleme) <\/strong>t\u00fcr\u00fcnde, Saya\u00e7 gibi yenilenen veriler kullan\u0131lacaksa w (\u00fczerine yazma)<\/strong> t\u00fcr\u00fcnde a\u00e7mak aha faydal\u0131 olacakt\u0131r.<\/p>\n
<\/a>Dosyan\u0131n Varl\u0131\u011f\u0131n\u0131 Kontrol Etme, Okuma\/Yazma \u0130zinleri<\/h3>\n
Dosya okuma i\u015flemi yapmadan \u00f6nce dosyan\u0131n varl\u0131\u011f\u0131n\u0131 kontrol etmek, yap\u0131lmas\u0131 gereken en \u00f6nemli i\u015flerdendir. Bunun i\u00e7in; file_exists<\/strong>\u00a0fonksiyonu kullan\u0131l\u0131r.<\/p>\n
Kullan\u0131m\u0131:<\/p>\n
if(file_exists(“dosyayolu”))
\necho “Dosya var”;
\nelse
\necho “Dosya bulunamad\u0131”;<\/i><\/p>\nfile_exists\u00a0<\/strong>fonksiyonu sadece dosya yolunu parametre olarak al\u0131r. E\u011fer dosya var ise; Do\u011fru (true)<\/em>, dosya yok veya ula\u015f\u0131lamaz ise Yanl\u0131\u015f (false)<\/em> de\u011ferini d\u00f6nd\u00fcr\u00fcr.<\/p>\n
Dosyan\u0131n varl\u0131\u011f\u0131 do\u011fruland\u0131ktan sonra, dosyan\u0131n okunabilir mi, yaz\u0131labilir mi oldu\u011funu \u00f6\u011frenmemiz gerekiyor. Bunun i\u00e7in\u00a0is_readable (okunabilir mi), is_writable (yaz\u0131labilir mi)\u00a0<\/em>fonksiyonlar\u0131 kullan\u0131labilir.<\/p>\n
is_readable:<\/strong> Dosya yetkileri kontrol edilerek, dosyay\u0131 okuma iznimiz olup olmad\u0131\u011f\u0131 kontrol edilebilir. E\u011fer dosyay\u0131 okuma iznimiz var ise; Do\u011fru (true)<\/em>, yoksa Yanl\u0131\u015f (false)<\/em> sonucu d\u00f6nd\u00fcr\u00fcl\u00fcr.<\/p>\n
is_writable:<\/strong> Dosya yetkileri kontrol edilerek, dosyaya\u00a0yazma\u00a0iznimiz olup olmad\u0131\u011f\u0131 kontrol edilebilir. E\u011fer dosyaya yazma iznimiz var ise; Do\u011fru (true)<\/em>, yoksa Yanl\u0131\u015f (false)<\/em> sonucu d\u00f6nd\u00fcr\u00fcl\u00fcr.<\/p>\n
\u00d6rnek:<\/p>\n
$dosya=”deneme.txt”;<\/em>
\nif(file_exists($dosya))\u00a0 \u00a0 <\/em>
\n\u00a0 \u00a0 {<\/em>
\n\u00a0 \u00a0 if(is_writable($dosya))<\/em>
\n\u00a0 \u00a0 \u00a0 \u00a0 {<\/em>
\n\u00a0 \u00a0 \u00a0 \u00a0 $f=fopen($dosya,”a”);<\/em>
\n\u00a0 \u00a0 \u00a0 \u00a0 fwrite($f,”\\nYeni Eklenen Veri”);<\/em>
\n\u00a0 \u00a0 \u00a0 \u00a0 fclose($f);<\/em>
\n\u00a0 \u00a0 \u00a0 \u00a0 echo “Veri dosyaya yaz\u0131ld\u0131”;<\/em>
\n\u00a0 \u00a0 \u00a0 \u00a0 }<\/em>
\n\u00a0 \u00a0 else\u00a0if(is_readable($dosya))<\/em>
\n\u00a0 \u00a0 \u00a0 \u00a0 {<\/em>
\n\u00a0 \u00a0 \u00a0 \u00a0 $f=fopen($dosya,”r”);<\/em>
\n\u00a0 \u00a0 \u00a0 \u00a0 $v=fread($f,”1000″);<\/em>
\n\u00a0 \u00a0 \u00a0 \u00a0 fclose($f);<\/em>
\n\u00a0 \u00a0 \u00a0 \u00a0 echo “Dosyadan okunan veri: “.$v;<\/em>
\n\u00a0 \u00a0 \u00a0 \u00a0 }<\/em>
\n\u00a0 \u00a0 else<\/em>
\n\u00a0 \u00a0 \u00a0 \u00a0 echo “Dosyay\u0131 okuma\/yazma iznimiz bulunmamaktad\u0131r.”;<\/em>
\n\u00a0 \u00a0 }<\/em><\/p>\n<\/a>Dosya \u0130\u00e7inde\u00a0Gezinme<\/h3>\n
fseek<\/strong> komutu, fopen<\/em> ile a\u00e7\u0131lan bir dosya i\u00e7erisinde bulunulan konumdan istenilen ba\u015fka bir konuma gitmeyi sa\u011flar. Dosyadan veri okunduktan sonra, i\u015faret\u00e7i yerinin de\u011fi\u015ftirilmesi i\u00e7in kullan\u0131l\u0131r.<\/p>\n
Kullan\u0131m\u0131:<\/p>\n
fread($f,2600);<\/em><\/p>\n
fseek($f,2790); \/\/2600. baytta yer alan i\u015faret\u00e7inin 2790. bayta ilerlemesini sa\u011flar.<\/em><\/p>\n
fseek($f,0); \/\/2790. baytta yer alan i\u015faret\u00e7inin dosya ba\u015f\u0131na konumland\u0131r\u0131lmas\u0131n\u0131 sa\u011flar.<\/em><\/p>\n
<\/a>Dosya Kapatma<\/h3>\n
PHP’de bir dosya ile i\u015flem yapabilmek i\u00e7in dosyay\u0131 a\u00e7mam\u0131z gerekti\u011fini s\u00f6ylemi\u015ftik. Dosyay\u0131 a\u00e7ma i\u015flemi bu dosyay\u0131 di\u011fer payla\u015f\u0131mc\u0131lar\u0131n eri\u015fimine kar\u015f\u0131 kilitleyece\u011fi i\u00e7in kullan\u0131m\u0131m\u0131z sona erdikten sonra dosyay\u0131 kapatmam\u0131z gerekmektedir. Bunun i\u00e7in\u00a0fclose<\/strong> komutunu kullanmal\u0131y\u0131z.<\/p>\n
Kullan\u0131m:<\/p>\n