Forum Aski - Türkiye'nin En Eğlenceli Forumu
 

Go Back   Forum Aski - Türkiye'nin En Eğlenceli Forumu > Webmaster Dünyası > Webmaster Genel
Kayıt ol Yardım Kimler Online Bugünki Mesajlar Arama

canlı casino siteleri canlı casino siteleri sagedatasecurity.com casino siteleri takipçi satın al
porno diyarbakır escort bayan antalya escort malatya escort

PHP Dilinde Dosya İşlemleri - 1

Webmaster Genel kategorisinde açılmış olan PHP Dilinde Dosya İşlemleri - 1 konusu , ...


Yeni Konu aç  Cevapla
 
LinkBack Seçenekler Arama Stil
Alt 29.04.2014, 01:46   #1 (permalink)
Dahiliğin mutlak bir sınırı vardır, aptallığın asla.

Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
yeni PHP Dilinde Dosya İşlemleri - 1

PHP Dilinde Dosya İşlemleri - 1

PHP ile bir dosya üzerinde işlem yapmak her zaman bize lazım olabilecek bir olaydır. Özellikle MySQL ve benzeri veritabanı sistemlerinin desteklenmediği sunucularda ya da sayaç, maillist ve benzeri uygulamalarda verileri bir dosya üzerine yazıp bir dosya üzerinden okumak daha akıllıca ve işlevseldir. Bu makalede dosyaları açmayı, kapatmayı, dosya üzerine yazmayı, dosyaları okumayı, yeni dosyalar yaratmayı, silmeyi ve dosya yönetimi ile ilgili daha nice yararlı bilgileri anlatmaya çalışacağım.

Giriş olayını fazla abartmadan hemen konuya girmekte sanırım yarar var. Çünkü bana oldukça uzun sürecek bir konuymuş gibi geliyor..

Dosyayı Açmak

Bir dosya üzerine yazmak ya da bir dosyayı okumak için öncelikle o dosyayı açmamız gerekir. Dosyamızı açabilmemiz için gereken fonksiyon fopen(); fonksiyonudur. Aşağıda bu fonksiyonun yazım kuralını görüyorsunuz.

Kod:
Kod:
fopen("dizin\dosya", dosya_modu);
Fonksiyonun ilk argümanı açacağınız dosyanın tam yolunu belirteceğiniz bölümdür. Eğer script`iniz açacağınız dosya ile aynı dizinde ise ekstradan dizin belirtmenize ihtiyaç yoktur. İkinci argüman ise dosya modudur. Buraya yazacağınız değer, dosyayı ne amaçla açtığınızı simgeleyecektir. Dosya modları şu şekildedir;
r: Dosyayı başından itibaren okumak için aç.
r+: Dosyayı başından itibaren hem okumak hem de yazmak için aç.
w: Dosyayı başından itibaren yazmak için aç. Eğer dosya mevcut değilse yeni bir dosya yarat, mevcutsa tüm içeriği sil.
w+: Dosyayı başından itibaren hem okumak hem de yazmak için aç. Eğer dosya mecvut değilse yeni bir dosya yarat, mevcutsa tüm içeriği sil.
a: Dosyayı başından itibaren yazmak için aç. Eğer dosya mevcut değilse yeni bir dosya yarat, mevcutsa dosyanın sonundan itibaren ekleme yap.
a+: Dosyayı başından itibaren okumak ve yazmak için aç. Eğer dosya mevcut değilse yeni bir dosya yarat, mevcutsa dosyanın sonundan itibaren ekleme yap.
Bir dosyayı açarken kullanacağımız dosya moduna dikkat etmeliyiz. Script`in işlevine göre uygun bir mod ile dosyayı açmalıyız. Aşağıdaki örnekten yararlanarak fopen(); fonksiyonunun kullanımı hakkında bilgi edinebilirsiniz.

Kod:
Kod:
if (fopen("kayitlar.txt", "a+")) echo("Dosya açıldı.");
else echo("Dosya açılamadı.");
Ayrıca yine fopen(); fonksiyonu sayesinde uzak sunucudaki ftp yahut http protokolünü kullanan belgeleri de açabiliriz. Fonksiyonun içine adres yazarken uymamız gereken mutlak kural adresi [Link'i Görebilmeniz İçin Kayıt Olunuz.! Kayıt OL] şeklinde yazmaktır. Eğer sondaki yatık çizgiyi koymazsak fonksiyon görevini yerine getirmez. Genelde uzaktaki belgelere sadece okuma moduyla erişebiliriz. Diğer modlara izin verilmesi durumunda güvenlik tehlikesi yaratabileceğinden genelde sadece okuma izni verilir. Bununla ilgili bir örnek yazalım;

Kod:
Kod:
fopen("http://www.ornek.com/", "r");
Bu fonksiyonu kullanırken alabileceğiniz muhtemel bir hata vardır ki, o da "Permission Denied" yani bu işlemi yapmaya izninizin olmadığını belirten bir hatadır. Bu durumda chmod ayarlarına göz atmanız sorunu çözmek için yeterli olabilir.

Dosyaya Yazmak ve Dosyayı Kapatmak

PHP ile bir dosyaya yazmak için öncelikle o dosyayı açmamız gerekir. Bunu fopen(); ile nasıl yapacağımızı sanırım öğrendik. Dosyaya yazmak için PHP dilinde fputs(); ve fwrite(); fonksiyonları kullanılır. İkisinin de yazım şekli aynıdır. Aşağıdaki örneği inceleyin.

Kod:
Kod:
<?php
$yazi1	= date("d.m.Y")."\t".date("G:i:s")."\t"."ve ben ilk yazımı yazıyorum!\n";
$yazi2	= date("d.m.Y")."\t".date("G:i:s")."\t"."ve ben ikinci yazımı yazıyorum!\n";
$ac	= fopen("kayitlar.txt", "w+");
fputs($ac, $yazi1);
fputs($ac, $yazi2);
fclose($ac);
?>
Bu örnekte görüldüğü gibi ilk olarak yazacağımız metinleri belirledik, sonra dosyamızı açtık. Buraya kadar herşey bildiğimiz şeylerdi. Sonra yazı yazmak için fputs(); fonksiyonundan yararlandık. Son olarakta açtığımız dosyayı kapattık. fputs(); ve fwrite(); fonksiyonlarının genel yazım kuralı yukarıdaki örnekte kullandığımız gibidir. Yukarıdaki örnekte fonksiyonumuza sadece iki argüman girdik. Bunlar haricinde tercihe bağlı olarak kullanılan bir üçüncü argüman daha vardır. Bu argüman sayesinde dosyaya yazılacak olan maksimum byte sayısı belirtilir ve bu sayıya ulaşana dek yazım işlemi devam eder. Örneğimizde fputs($ac, $yazi1, 5); gibi bir değişiklik yaparsak, $yazi1 için sadece 5 byte`lık veri yazılacak ve fonksiyon sonlandırılacaktır.

Dikkat ettiyseniz yazacağımız metinlerin arasında \t \n gibi karakterler bulunuyor. Bunların ne anlama geldiğini de yeri gelmişken izah edeyim. PHP ile çıktı aldığımız zaman kaynak kodlar genelde bitişik olarak ve düzensiz bir şekilde gelir. Bu elbette sayfa tasarımına yansımaz fakat kaynak kodları incelemeye çalıştığımızda bizi zor durumda bırakabilir. İşte bu karakter gruplarının kimisi burada devreye giriyor. Kimisi ise PHP tarafından kullanılan dolar işareti ($) ve ters bölme işareti (\) gibi işaretleri etkisizleştirmeye ve kullanabilmemize yarar. Kısaca bunların işlevlerini açıklamak gerekirse şunlar yazılabilir:
\\: Ters bölü işareti.
\': Tek tırnak işareti.
\": Çift tırnak işareti.
\$: Dolar işareti.
\r: Kaynak kod içinde satır başı yapmak için kullanılır.
\t: Kaynak kod içinde sekme (tab) yapmak için kullanılır.
\n: Kaynak kod içinde yeni satıra geçer.
Konuyu fazla dağıtmadan dosya işlemlerine geri dönelim. Örneğimizde bilmediğimiz bir başka fonksiyon ise dosyayı kapatmaya yarayan fclose(); fonsiyonudur. Bu fonksiyonun yazım kuralı örnekte görüldüğü gibidir, yani bağlantıyı yüklediğimiz değişkeni fonksiyon içerisine yazarak kolayca bağlantıyı kapatabiliriz.

Dosyayı Okumak
feof(); Fonksiyonu
fgets(); ve fgetss(); Fonksiyonları
fgetc(); Fonksiyonu
readfile(); Fonksiyonu
file(); Fonksiyonu
fread(); Fonksiyonu
Dosya açmayı, yazmayı ve kapatmayı öğrendikten sonra bunları nasıl okuyacağımızı öğrenme vakti de geldi. Öncelikle dosya okuma işlemleri için kullanacağımız fonksiyonları ve bunların işlevlerini belirtelim.

feof(); Fonksiyonu: Bir dosyanın sonuna kadar okunup okunamadığını belirtir. Başka bir deyişle bir dosyayı baştan sona okumak için kullanılır. Zaten fonksiyonun ismi "File End Of File" anlamına gelir. Okunmaya çalışılan dosyanın sonuna erişilmesi durumunda sonuç true (1) olarak dönecek, aksi durumda ise false (0) olarak dönecektir. Genel olarak bir while döngüsü eşliğinde kullanılır. Yazım kuralı aşağıdaki gibidir;

Kod:
Kod:
feof($ac);
Görüldüğü gibi bu fonksiyon tek bir parametre içerir ve içerdiği parametrede bir dosyayı açmak için kullandığımız değişkenin ismidir.

fgets(); ve fgetss(); Fonksiyonları: Bir dosyadan satır satır veri okumak için fgets(); fonksiyonu kullanılır. Yazım kuralı şöyledir;

Kod:
Kod:
fgets($ac, 256);
Burada $ac değişkeni fopen(); ile dosyayı açan değişkendir. 256 rakamı ise maksimum okunacak byte miktarıdır. Fonksiyon yukarıdaki haliyle 255 byte okuyup sonlandırılacaktır.

Bir de benzer olarak fgetss(); fonksiyonu vardır. Bu fonksiyonun benzerinden tek farkı, okunan dosya içerisindeki HTML tag`lerini yok ediyor olmasıdır. Yazım kuralı şöyledir;

Kod:
Kod:
fgetss($ac, 100, "<b><u>");
Yukarıda görüldüğü gibi ilk olarak dosyayı açmak için kullandığımız $ac değişkenini yazdık, sonra maksimum okunacak veriyi yazdık. En son yazdığımız argüman ise yok edilmemesini istediğimiz HTML tag`leridir. Fonksiyon belirtilenler haricindeki tüm tag`leri yok edecektir. Son bölüm isteğe bağlı olarak yazılabilir, hiçbir şey yazılmaması halinde tüm tag`ler yok edilecektir. Bu fonksiyonu kullanabileceğiniz alanlar genel olarak üyelerin üzerinde işlem yapabildiği dosyalar denilebilir. Örneğin üye bilgilerinin tutulduğu bir kayıt dosyamız var ve biz üye bilgilerini bu dosyadan alıyor olalım. Üye eğer kötü niyetli bir kişiyse herhangi bir bilgisini HTML kodu olarak girip sayfa düzenimizi bozabilir, hatta bir nevi hackleyebilir. Yazacağı bir JavaScript kodu ile kendi sayfasına yönlendirebilir. Kısacası sitenizi kötü emellerine alet edebilir. Bunları engellemek için PHP`ye dosyadan veri okuturken HTML tag`lerini yok etmek isteyebiliriz. İşte bu noktada bu fonksiyon işimize çok yarayacaktır.

fgetc(); Fonksiyonu: Bir dosyadan tek bir karakter okumak için fgetc(); fonksiyonu kullanılır. Fonksiyon her çağrıldığında bir karakter okuyacaktır. İçerisine tek bir parametre alır, bu da makalemizde $ac olarak gösterdiğimiz dosyayı açmamıza yarayan argümandır. Yazım kuralı şöyledir;

Kod:
Kod:
fgetc($ac);
Bir örnekle pekiştirelim;

Kod:
Kod:
$ac = fopen("kayitlar.txt", "r");
echo fgetc($ac);
fclose($ac);
Görüldüğü gibi öncelikle dosyamızı açtık, sonra tek bir karakter okutmak için fgetc(); fonksiyonunu kullandık ve en son olarak dosyamızı kapattık.

readfile(); Fonksiyonu: Bir seferde tüm dosyayı okumak için bu fonksiyonu kullanırız. Fonksiyon icra edilirken öncelikle dosya açılır, sonra okunur ve çıktı verilir. Dosyayı kendiliğinden açtığı için ekstadan bir fopen(); kullanmamıza gerek kalmaz. Genel yazım kuralını gösteren bir örnekle bu fonksiyonu geçelim;

Kod:
Kod:
readfile("kayitlar.txt"); //
Evet sadece bu kadar..
file(); Fonksiyonu: Bu fonksiyon ile dosya açılır, okunur ve her satırı bir diziye (array) kaydedilir. readfile(); fonksiyonu ile oldukça benzerdir fakat tek farkı çıktıyı bir dizi değişkenine atıyor olmasıdır. Aşağıdaki örneği inceleyin;

Kod:
Kod:
$dizi = file("kayitlar.txt");
print_r($dizi);
echo "<br>".$dizi[3];
Burada dosya öncelikle açıldı, okundu ve her satırı $dizi dizisine birer eleman olarak kaydedildi. Sizin oluşturduğunuz kayitlar.txt belgesinin 4 satıra eşit ya da 4 satırdan fazla olduğunu düşünürsek yukarıdaki örnek gayet başarılı çalışacaktır. file(); fonksiyonu içerisine sadece kullanılacak olan dosyanın adresini alır. Başka bir parametre almaz.

fread(); Fonksiyonu: Bir dosyanın istediğimiz kadar kısmını okumak için bu fonksiyonu kullanırız. Dosyadan çekeceğimiz veri miktarını byte değerinden yazarız. Yazım kuralı aşağıdaki gibidir.

Kod:
Kod:
fread($ac, veri_miktari);
Bunu bir örnekle pekiştirelim;

Kod:
Kod:
$ac = fopen("kayitlar.txt", "r");
echo fread($ac, 6); // Toplam 6 byte miktarında veri okuyoruz.
fclose($ac);
Dosyayı Silmek && Yeni Bir Dosya Yaratmak

Dosya silmek için unlink(); fonksiyonunu kullanırız. Yazım kuralı aşağıdaki gibidir. İçerisine sadece silinecek olan dosyanın adresini alır.

Kod:
Kod:
unlink("kayitlar.txt");
Yeni bir dosya yaratmak için ise touch(); fonksiyonu kullanılır. Tek bir parametre alır, bu parametre de dosya adını belirtir. Yazım kuralı aşağıdaki gibidir.

Kod:
Kod:
touch("kayitlar.txt");

__________________
Sezqin-X- isimli Üye şimdilik offline konumundadır Alıntı ile Cevapla
Alt 29.04.2014, 01:49   #2 (permalink)
Root Administrator

Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
Standart Cevap: PHP Dilinde Dosya İşlemleri - 1

Konu Tarafımca Webmaster GeneL BöLümüne Taşinmistir.

Jaqen isimli Üye şimdilik offline konumundadır Alıntı ile Cevapla
Cevapla

Yukarı'daki Konuyu Aşağıdaki Sosyal Ağlarda Paylaşabilirsiniz.


Yetkileriniz
Konu Açma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık


Forum hakkında Kullanılan sistem hakkında
Forumaski paylaşım sitesidir.Bu nedenle yazılı, görsel ve diğer materyaller sitemize kayıtlı üyelerimiz tarafından kontrol edilmeksizin eklenmektedir.Bu nedenden ötürü doğabilecek yasal sorumluluklar yazan kullanıcılara aittir.Sitemiz hak sahiplerinin şikayetleri doğrultusunda yazılı, görsel ve diğer materyalleri 48 saat içerisinde sitemizden kaldırmaktadır. Bildirimlerinizi bu linkten bize yapabilirsiniz.

Telif Hakları vBulletin® Copyright ©2000 - 2016, ve Jelsoft Enterprises Ltd.'e Aittir.
SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.
yetişkin sohbet chatkamerali.net

Saat: 17:09