html-php-code-revArkadaşlar Bu konu hakkında sorular olduğunu gördüm ve sizle şimdi paylaşacağım bilgileri paylaşmak istedim…. PHP’de yukarıda ele aldığımız include ve require komutları ve biraz sonra değineceğimiz dosya okutma ve yazdırma işlemleri dolayısıyla bir dosyanın varlığı veya yokluğu, ya da bir dosyaya ait sandığımız ismin bid klasöre ait olması, programımızın sağlıklı işleyebilmesi açısından büyük önem taşır. PHP bu amaçla bize bir kaç kullanıma hazır fonksiyon sağlıyor. Burada kısaca bu fonksiyonlara ve nasıl kullanıldıklarına değinelim: Dosya var mı? file_exits() Bir dosyanın var olup olmadığını denetleyen bu fonksiyon, dosya varsa true/doğru, yoksa false/yanlış sonucunu verir. Örnek:

if ( file_exits ( “bir_dosya.txt” ) ) print (”Dosya var!”);

Dosya yoksa, program “Dosya var!” yazmadan yoluna devam edecektir. Dosya mı, dizin mi? is_file() ve is_dir() Kimi zaman klasörler de tıpkı dosyalar gibi adlandırılabilir. Bir dizinde gördüğümüz ismin gerçekten bir dosyaya ait olup olmadığını bu fonksiyonla sınarız. Sınama doğru, yani isim bir dosyaya ait ise fonksiyon true/doğru, değilse false/yanlış sonuç verir. Örnek:

if ( is_file ( “bir_dosya.txt” ) ) print (”Bu bir dosyadır!”);

İsim bir dosyaya ait değilse program “Bu bir dosyadır!” yazmadan yoluna devam edecektir. Sınamayı ismin bir klasöre ait ait olup olmadığına bakrarak da yaparız. Bu durumda is_dir() fonksiyonunu kullanırız. isim bir dizine aitse fonksiyon true/doğru, değilse false/yanlış sonuç verir. Örnek:

if ( is_dir ( “/bir_isim” ) ) print (”Bu bir dizindir!”);

İsim bir dizine ait değilse program “Bu bir dizindir!” yazmadan yoluna devam edecektir. Dosya okunabilir mi? is_readable() Programda kullanmaya karar vermeden önce bir dosyanın erişilebilir ve PHP tarafından okunabilir olup olmadığını sınayan bu fonksiyon, dosya okunabilir ise true/doğru, değilse false/yanlış sonuç verir. Örnek:

if ( is_readable ( “bir_dosya.txt” ) ) print (”Bu dosya okunabilir!”);

Dosya okunabilir değilse program “Bu dosya okunabilir!” yazmadan yoluna devam edecektir. (Unix ortamında varlığını görebildiğimiz her dosyanın okuma izni bulunmayabilir.) Dosya yazılabilir mi? is_writable() Programda kullanmaya karar vermeden önce bir dosyanın yazılabilir olup olmadığını sınayan bu fonksiyon, dosya yazılabilir ise true/doğru, değilse false/yanlış sonuç verir. Örnek:

if ( is_writable ( “bir_dosya.txt” ) ) print (”Bu dosyaya yazılabilir!”);

Dosya yazılabilir değilse program “Bu dosyaya yazılabilir!” yazmadan yoluna devam edecektir. (Unix ortamında varlığını görebildiğimiz hatta okuyabildiğimiz her dosyanın yazma izni bulunmayabilir.) Dosya çalıştırılabilir mi? is_executable() PHP programında kimi zaman sunucunun kullanmamıza izin verdiği haricî programları çalıştırız; PHP programımızın düzgün işlemesi bu harici programa bağlı olabilir. Böyle bir programı çalıştırmaya karar vermeden önce bir dosyanın çalıştırılabilir olup olmadığını sınayan bu fonksiyon, dosya çalıştırılabilir ise true/doğru, değilse false/yanlış sonuç verir. Örnek:

if ( is_executable ( “bir_dosya” ) ) print (”Bu dosya çalıştırılabilir!”);

Dosya çalıştırılabilir bir program değilse PHP programı “Bu dosya çalıştırılabilir!” yazmadan yoluna devam edecektir. (Unix ortamında varlığını görebildiğimiz her pprogram dosyasının çalıştırma izni bulunmayabilir.) Dosya boyutu: filesize() Adını verdiğimiz dosyanın boyutunu byte olarak bildirir: Örnek:

print (”Dosyanın boyutu:”); print filesize( “bir_dosya.txt” );

Dosyaya son erişim tarihi: fileadate(), filemtime() ve filectime() Adını verdiğimiz dosyaya son erişim tarihini bildirir. ne var ki bu bilgi Unix’in “epoch” biçimindedir: Örnek:

print (”Dosyanın son erişim tarihi:”); $dosya_tarihi = fileadate( “bir_dosya.txt” ); print ( ” $dosya_tarihi ” );

Eğer bu dosyanın son erişim tarihi 28 Temmuz 2008, Cuma 24:00:00 ise, PHP, Browser penceresine 964731600 yazacaktır. Bu komutun ürettiği bilgiyi, date() fonksiyonu ile anlaşılabilir hale getirebiliriz:

print (”Dosyanın son erişim tarihi:”); $dosya_tarihi = fileadate( “bir_dosya.txt” ); print date(”D d M Y G:i:s H”, $dosya_tarihi );

Bu kez PHP Browser penceresine 28 Jul 2008 242:00:00 00 yazdıracaktır. Tarih verilerinin date() fonksiyonu ile biçimlendirilmesini daha sonra ayrıntılı ele alacağız. filemtime(), bir dosyanın son değiştirildiği tarihi; filectime(), ise oluşturulduğu tarihi, yine Unix Epoch biçiminde bildirir; bu verinin anlaşılır biçimde görüntülenmesi için PHP’nin date() fonksiyonu kullanılır. Dosyalar oluşturma ve silme PHP ile yapabileceğimiz önemli dosya işlemlerinin başında olmayan bir dosyayı oluşturmak ve olan bir dosyayı silmek gelir. PHP’nin dosya oluşturma komutu touch() fonksiyonudur. Bu fonksiyona oluşturulmasıın istediğimiz dosyanın adını vermemiz gerekir. Örnek:

$dosya_dizin = "/inetpub/wwwroot/"; touch ("$dosya_dizin/yeni_belge.txt"); print ("yeni_belge adlı bir dosya oluşturuldu!"); ?>

Bu programı kişisel Web sunucuda denerken yeni dosyanın oluşturulacağı dizin olarak “/” işaretiyle sadece kökdizini belirtirseniz, dosya C: diskinde kökdizinde oluşturulur. Bu programı gerçek sunucuda çalıştırabilmek için yazma/okuma izni bulunan ve Web sunucunun erişebileceği bir dizinin adını vermeniz gerekir. Örneğin:

$dosya_dizin = "/wwwroot/mycgiserver.com/members/uNhM13Qnm/"; touch ("$dosya_dizin/yeni_belge.txt"); print ("yeni_belge adlı bir dosya oluşturuldu!"); ?>

Bu komutla oluşturacağınız dosya içi boş bir metin dosyası olacaktır. Eğer belirttiğiniz dizinde bu adı taşıyan bir dosya varsa, PHP dosyanın içeriğine dokunmayacak, fakat dosyanın erişim ve değişim tarihlerini değiştirecektir. PHP ile mevcut bir dosyayı silmek için unlink() fonksiyonunu kullanırız. Bu fonksiyon da silinecek dosyanın adı ile birlikte yolunu ister. Örnek:

$dosya_dizin = "/wwwroot/mycgiserver.com/members/uNhM13Qnm/"; unlink ("$dosya_dizin/yeni_belge.txt"); print ("yeni_belge adlı dosya silindi!"); ?>

Dosyaya yazma ve ek yapma: fwrite() ve fputs() Bir dosyaya yazma veya ek yapma, PHP açısından aynı işlemdir; sadece dosyaların açılışında fark vardır. Hatırlayacaksınız, bir dosyayı yazmak amacıyla açmak için:

$dosya = fopen( “bir_dosya.txt” , ‘w’ ) or die (”Dosya açılamıyor!”) ;

ek amacıyla açmak için ise

$dosya = fopen( “bir_dosya.txt” , ‘a’ ) or die (”Dosya açılamıyor!”) ;

kodunu yazmamız gerekir. Dana sonra yapılacak yazma ve ekleme işlemlerinin farkı, ‘w’ parametresi ile açılan dosyaya yazma işlemi en başından başlar ve devam eder; ‘a’ parametresi ile açaılan dosyaya yazma işlemi ise en sondan başlar ve devam eder. PHP’nin bir dosyaya metin yazdırma fonksiyonları olan fwrite() ve fputs() aynı biçimde yazılır ve aynı işlevi yerine getirirler; aralarında kesinlikle fark yoktur. Örnek:

$dosya_adi = "/inetpub/wwwroot/bir_dosya.txt"; $dosya = fopen ($dosya_adi , ‘w’) or die ("Dosya açılamadı!"); $metin = "Bu satır dosyaya yazılacak: Merhaba Dünya!n"; fwrite ( $dosya , $metin ) ; fputs ( $dosya , "Bu satır ise sonradan eklenecekn" ) ; fclose ($dosya); ?>

Bu programı çalıştırdığınızda, bir_dosya.txt adlı dosyada mevcut bütün içerik silenecek ve yerini $metin değişkeninin içerdiği “Bu satır dosyaya yazılacak: Merhaba Dünya!” yazısı ile “Bu satır ise sonradan eklenecek” cümlesi alacaktır. Her iki metnin sonunda da yeni satır işareti bulunduğuna dikkat edin. Bu programda dosya açma kıomutundaki ‘w’ parametresini siler, yerine ‘a’ yazarsanız, bu metinlerin dosyanın içeriğine eklendiğini görebilirsiniz. Kullanımdaki dosyayı kilitleyin! Web sunucusundaki dosyalarımızla sadece bir kişi işlem yapıyor olsa idi, bir sorun olmazdı; ne var ki, bir Web sitesine aynı anda birden fazla kişi eriyebilir ve dosyalarla işlem yapan programları çalıştırıyor olabilir. Bu, PHP’nin dosya işlemlerine engel olabilir. Bu sebeple, işlem için açacağımız bir dosyayı, önce kilitlemek yerinde bir önlem sayılır. Bunu, flock() fonsiyonu ile yaparız; bu fonksiyona kilitlemek istediğimiz dosyanın işaret değişkeninin adını ve kilit türünü belirten endeks sayısını parametre olarak yazarız. Örnek:

$dosya_adi = "/inetpub/wwwroot/bir_dosya.txt"; $dosya = fopen ($dosya_adi , ‘w’) or die ("Dosya açılamadı!"); flock ( $dosya , 2); // dosyayı kilitle $metin = "Bu satır dosyaya yazılacak: Merhaba Dünya!n"; fwrite ( $dosya , $metin ) ; fputs ( $dosya , "Bu satır ise sonradan eklenecekn" ) ; flock ( $dosya , 3); //dosyayı kilidini aç fclose ($dosya); ?>

Bu fonksiyon ile kullanabileceğimiz endeks parametreleri şunlardır: 1 Paylaşım Diğer proseslerin dosyayı paylaşmalarına imkan verir 2 Tam Diğer proseslerin dosyaile işlem yapmasına engel olur 3 Serbest Dosyanın 1 veya 2 olan kilidini kaldırır Bir dosya, herhangi bir PHP programı tarafından kilitlendiği anda, aynı dsyayı daha sonra kilitlemeye kalkan diğer programlar kendilerinden önce konulmuş kilide saygı gösterirler.

Kaynak: Ceviz.net / RoCaLL

5 YORUMLAR

  1. selam herkese
    benim bir sorunum var umarım yardımcı olursunuz

    $myFile = “data.txt”;
    $fh = fopen($myFile, ‘a’) or die(“hataa dosya acilamadi”);
    $link = $_POST [“ad”][“yor”];
    fwrite ($fh, “$ad:$yor :\r\n”);
    fclose($fh);

    data.txt gönderdigim son mesaj yukarıda cıksın istiyorum
    nasıl yapabilirim acaba
    yardım ederseniz sevinirim
    şimdiden tessekürler

  2. Php ile dosya silme işlemi yapmak istiyorum ama çalışmıyor yardım edermisiniz

    Bu form kısmı
    form action=”resimsil.php” method=”post”
    input type=”submit” name=”resimsil” value=”Sil”
    /form

    Buda resimsil.php
    $dosyaadi = “../image/”.$_POST[“resimsil”];
    if(@unlink($dosyaadi))
    echo “Resim Silindi.”;
    else
    echo “Resim Silinemedi”;

  3. Resimsil inputu yanlis yapilandirilmis. asagidaki gibi deneyin:

    form action=”resimsil.php” method=”post”
    input type=”text” name=”resimsil” id=”resimsil” value=”silinecek resim ismi”
    input type=”submit” name=”resimsilbutton” value=”Sil”
    /form

Bir Cevap Yazın