280 likes | 587 Views
Dosyaya Bilgi Yazmak ve Dosyadan Okumak. Temel Dosya İşlemleri. Açmak ( okumak için , yazmak için …) Dosyadan okumak Dosyaya yazmak Dosyanın sonuna yazmak/okumak Dosyayı kapatmak. Temel Dosya Fonksyonları. Açmak/Kapatmak fopen, fclose Okumak fread, fgets, fgetss, fgetcsv, fgetc
E N D
Temel Dosya İşlemleri • Açmak (okumak için, yazmak için …) • Dosyadan okumak • Dosyaya yazmak • Dosyanın sonuna yazmak/okumak • Dosyayı kapatmak
Temel Dosya Fonksyonları • Açmak/Kapatmak • fopen, fclose • Okumak • fread, fgets, fgetss, fgetcsv, fgetc • Yazmak • fwrite, fputs, fputc, • Dosyada gezmek • rewind, fseek, ftell
Fopen ile dosya açmak $fp = fopen ("ftp://user:passwd@example.com/dosya.txt", "w"); // ftp $fp = fopen ("http://www.php.net/", "r"); // http $fp = fopen ("c:\\data\\info.txt", "r"); // windows $fp = fopen ("/home/rasmus/file.gif", "wb"); //unix
fopen Dosya Açma Modları • 'r' – sadece oku; işaretçi dosyanın başında • 'r+' – oku ve yaz; işaretçi dosyanın başında • 'w' – sadece yaz işaretçi dosyanın başında • 'w+' – oku ve yaz; işaretçi dosyanın başında • 'a' – sadece yazma; işaretçi dosyanın sonunda.Eğer dosya yoksa onu oluşturur. • 'a+' – yazma ve okuma; işaretçi dosyanın sonunda.Eğer dosya yoksa onu oluşturur.
Fwrite fonksyonu int fwrite/fputs (int fp, string string, int uzunluk) Stringi fp dosyasına uzunluk kadar yazar //örnek <? $fd = fopen ("text.txt", "w"); if (! $fd) {echo “Yazamadı!"; exit; } fwrite($fd, " ", 100); fclose ($fd); ?>
fread string fread (int fp, int x) fp dosyasaında x uzunluğunda karakter okur // bir kere de tüm dosyayı okur <? $dosyaAdi = "something.txt"; $fd = fopen ($ dosyaAdi, "r"); $contents = fread ($fd, filesize ($dosyaAdi)); echo nl2br("$contents"); fclose ($fd); ?>
fgets string fgets (int fp, int x) fp’den 1 satırdaki x tane karakteri okur <? $fd = fopen ("text.txt", "r"); while (!feof ($fd)) { $okunan = fgets($fd, 4096); echo $okunan; } fclose ($fd); ?>
fgetss string fgetss (int fp, int length) <> ile yazılmış html etiketlerini atlayarak okur <? $fd = fopen ("text.txt", "r"); while (!feof ($fd)) { $buffer = fgetss($fd, 500); echo $buffer."<br>"; } fclose ($fd); ?>
Basic File Operations: fgetcsv array fgetcsv (int fp, int length,[ ayraç]) ayraçları atlayarak bir satırdaki karakterleri okur <? $fd = fopen ("csv.txt", "r"); while (!feof ($fd)) { list($fname, $lname) = fgetcsv($fd, 500); echo "$lname, $fname<br>"; } fclose ($fd); ?>
Copy fonksyonu • <?php$file = 'example.txt';$newfile = 'example.txt.bak';if (!copy($file, $newfile)) { echo “dosya kopyalanamadı...\n";else echo “dosya kopyalandı”}?>
File I/O: Navigation in files • int rewind (int fp) • İmleci dosyanın başına getirir • int fseek (int fp, int offset [, int whence]) • İmleci istenen yere(ofset) getirir. • int ftell (int fp) • İmlecin yerini gösterir
File I/O: OS File Operation • chmod — dosya modunu değiştirir • chown — dosyanın sahibini değiştirir • copy — dosyayı kopyalar • diskfreespace — Returns available space in directory • feof — Tests for end-of-file on a file pointer • file_exists — dosyanın olup olmadığını kontrol eder • filesize — dosyanın büyüklüğünü gösterir • filetype — dosya tipini gösterir • ftruncate — Truncates a file to a given length. • is_dir — klasör olup olmadığını söyler • is_executable — Tells whether the filename is executable • is_file — Tells whether the filename is a regular file • is_link — Tells whether the filename is a symbolic link • is_readable — Tells whether the filename is readable • is_writeable — Tells whether the filename is writeable • mkdir — klasor oluşturur • rmdir — klasor siler • tempnam — Creates unique file name • tmpfile — Creates a temporary file • unlink — Deletes a file
Php ile önce htdocstaki klasörünüzün altına bir dosya açıp içine hoşgeldiniz yazınız. • Kullanıcı için bir form oluşturunuz ve kullanıcının girdiği ad,soyad, sifre, mail isimlerini virgullerle ayırarak bu dosyaya yazdırınız.Kullanıcı isimleri alt alta yazılacak. • Orn: • Ali,Aktas,şifre,aliaktas@yahoo.com Fatma,Dur,FatmaDur,Fatma@hotmail.com
Bu dosyayı okuyan bir program yazınız. Dosyadaki herşeyi ekrana yazdıracak. • Bu dosyayı php copy fonksyonu ile D nin altına kopyalayınız.
Temel işlemler • Fopen • Fread • Fwrite • Fgets • Fgetss • Fgetcsv • Fclose
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 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. • Örnek: • if ( is_file ( "bir_dosya.txt" ) ) • print ("Bu bir dosyadır!");
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 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 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() • print ("Dosyanın son erişim tarihi:"); • $dosya_tarihi = fileadate( "bir_dosya.txt" ); • print ( " $dosya_tarihi " );
Touch() yeni dosya oluşturma • <?php • $dosya_dizin = “C:"; • touch("$dosya_dizin/yeni_belge.txt"); • print ("yeni_belge adlı bir dosya oluşturuldu!"); • ?>
Unlink() dosya silmek • <?php • $dosya_dizin =“C:”; • unlink ("$dosya_dizin/yeni_belge.txt"); • print ("yeni_belge adlı dosya silindi!"); • ?>
Flock • <?php • $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 eklenecek\n" ) ; • flock ( $dosya , 3); //dosyayı kilidini aç • fclose ($dosya); • ?>
1 Paylaşım Diğer proseslerin dosyayı paylaşmalarına imkan verir • 2 Tam Diğer proseslerin dosya ile işlem yapmasına engel olur • 3 Serbest Dosyanın 1 veya 2 olan kilidini kaldırır
Uygulama • Ziyaretçi defteri • Kullanıcı siteye girdiğinde isterse ziyaretçi defterine mesaj bırakabilecek(defter.txt) • Ya da eski mesajları okuyabilecek • Bir kopyala butonu koyunuz, bu butona tıklandığı zaman defter.txt dosyasının kopyasını yanına deftercopya.txt olarak alacak.