26 Eylül 2008, 04:02 | #1 | |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | Dosya okuma: fgets(), fread() ve fgetc() Dosya okuma: fgets(), fread() ve fgetc() Açtığımız bir dosyanın içindeki yazıları çoğu zaman programımıza satır satır okuturuz. PHP'de bir dosyanın içeriğini satır satır okutmamızı fgets() fonksiyonu sağlar. Bu fonksiyona daha önce açılmış olan dosyanın işaret değişkenin adını ve okunmasını istediğimiz asgari byte ölçüsünü parametre olarak veririz. fgets() fonksiyonu verdiğimiz uzunluk ölçüsüne ulaşmadan önce dosyada bir yeni satır işareti görürse, veya dosyanın sonuna ulaşırsa, okumaya son verir. Bu fonksiyonu çoğu zaman bir döngünün içinde kullanırız. Ancak döngünün hata vermemesi için, PHP'nin dosyanın sonuna ulaştığında döngüyü durdurmamız gerekir. fgets() fonksiyonunun okuyacağı satırı bir fonksiyona değer olarak verebilir ve daha sonra bu değeri programlarımızda kullanabiliriz. Örnek: <?php $dosya_dizin = "/inetpub/ Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. açıldı!<br>"); } else { print ("Dosya açılamadı!"); } while ( ! feof ($dosya ) ) { $satir = fgets ( $dosya, 1024 ) ; print ("$satir<br>"); } fclose ($dosya); ?> Bu program kişisel Web sunucuda önce varolan bir dosyayı açıyor; ve bu dosyanın işaretçisi olarak $dosya değişkenini kullanıyor. Daha sonra bir while() döngüsü içinde bu değişkeni ve 1 KB (1024 byte) ölçüsünü parametre olarak vererek fgets() fonksiyonu ile dosyadan bir satır okutuyoruz. fgets() fonksiyonundan dönen bir satırlık metni, burada $satir değişkenine atıyoruz; ve daha sonra print() fonksiyonu ile bu satırı Browser penceresine gönderiyoruz. Bu işlemi Internet'teki bir Web sunucuda uygulayabilmek için yazma/okuma izni bulunan ve Web sunucunun erişebileceği bir dizinin adını vermeniz gerekir. Bu işlemin içinde yapıldığı while() döngüsünün devam şartı olarak kullandığımız ifadede yer alan feof() fonksiyonu bir dosyanın dosya-sonu (end-of-file) durumuna ulaşıp ulaşmadığını sınar. PHP, her dosyanın sonunda yer alan eof (Ctrl-z, ^z) işaretine eriştiği anda feof() fonksiyonu doğru/true değerini verir. while() döngüsü, feof() doğru değilken devam etmek üzere kurulmuş olduğu için, dosya sonuna ulaştığımızda döngü duracaktır. Okuma işlemini durabilen bir döngüye bağlamazsak, fgets() PHP'nin bir programın sona ermesi için verilmiş varsayılan süresi doluncaya kadar dosyayı okumak isteyecektir. Kimi zaman dosyalarımızın içeriğini satır-satır okutmak yerine, kendi tayin edeceğimiz uzunlakta parçalar halinde okutmak isteriz. Bunu, fread() fonksiyonu ile sağlarız. Örnek: <?php $dosya_dizin = "/inetpub/ Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. açıldı!<br>"); } else { print ("Dosya açılamadı!"); } while ( ! feof ($dosya) ) { $paragraf = fread ( $dosya, 1024 ) ; print ("$paragraf<br>"); } fclose ($dosya); ?> fread() fonksiyonu da daha önce açılmış olan dosyanın işaret değişkenin adını ve okunmasını istediğimiz asgari byte ölçüsünü parametre olarak alır. fread() fonksiyonu verdiğimiz uzunluk ölçüsüne ulaşmadan önce dosyada bir yeni satır işareti görürse, veya dosyanın sonuna ulaşırsa, okumaya son verir. Bu fonksiyondan yararlanırken, verdiğiniz uzunluk ölçüsünün, almak istediğiniz metin parçasına uygun olduğunu sınamalısınız. fread(), bu ölçüye ulaştığında okumayı keser. Buradaki örneği 1024 byte ölçüsünü değiştirerek ve mesela 1, 2, 3 yaparak deneyebilir ve böylece vereceğiniz ölçünün okunan metnin uzunluğunu nasıl tayin ettiğini görebilirsiniz. fseek() ile ölçü belirleme PHP'nin dosya işleminde kullabileceğiniz bir diğer fonksiyonu fseek() adını taşır. Daha önce açılmış olan dosyanın işaret değişkenin adını ve ve programın bu metin içinde zıplamasını istediğiniz noktanın dosyanın başından itibaren byte değerini parametre olarak alan bu fonksiyon ile, bir dosyanın içinnde istediğimiz yere gitme imkanı vardır. Örnek: <?php $dosya_adi = "/inetpub/ Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. açıldı!<br>"); } else { print ("Dosya açılamadı!"); } $dosya_boyut = filesize($dosya_adi); $olcu = (int) ($dosya_boyut / 2 ); while ( ! feof ($dosya) ) { $paragraf = fread ( $dosya, $olcu) ; print ("$paragraf<br>"); } fclose ($dosya); ?> Burada, okutulacak dosyanın boyutunun yarısını atadığımız $olcu değişkenini, okutulacak metnin ölçüsü olarak kullanıyoruz. Bu durumda PHP, dosyayı iki paragraf halinde görüntüleyecektir. Dosyalarımızın içeriğini satırlar veya belirli ölçüde parçalar halinde değil de, tek-tek karakter olarak okutmak için fgetc() fonksiyonundan yararlanırız. Bu fonksiyon, daima 1 byte ölçüsünde (bir karakter) metin okuyabileceği için, parametre olarak sadece daha önce açılmış olan dosyanın işaret değişkenin adını alır. Örnek: <?php $dosya_adi = "/inetpub/ Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. açıldı!<br>"); } else { print ("Dosya açılamadı!"); } while ( ! feof ($dosya) ) { $karakter = fgetc ( $dosya ) ; print ("$karakter<br>"); } fclose ($dosya); ?> Burada fgetc() fonksiyonundan dönen değeri (yani dosyadan okunan bir karakteri), $karakter değişkenine atıyoruz ve daha sonra print() fonksiyonu ba karakteri ve HTML'in satır bölme kodu olan <br> işaretini Browser penceresine gönderiyor. Programı bu şekliyle sınarsanız, dosyadaki metnin tek karakter olarak Browser penceresinin soluna dizildiğini göreceksiniz. Programı <br> kodunu silerek çalıştırırsanız, bu kez dosyadaki metinde var olan satır sonu işaretlerinin de kaldırıldığını ve metnin bir paragraf oülarak görüntülendiğıini görebilirsiniz. Alıntıdır. | |
|
Etiketler |
dosya, fgetc, fgets, fread, okuma |
Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| |
Benzer Konular | ||||
Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
İlk Okuma Yazma Öğretiminin Günümüze Kadar Gelişimi Ve Okuma Yazma Öğretimi | Ecrin | Makale - Araştırma - Ve Bilimsel Yazılar | 0 | 14 Kasım 2015 15:08 |
Mirc Script ile dosya içeriğini okuma işlemi nasıl yapılır? | MerakLıuSer | mIRC Scripting Sorunları | 4 | 28 Şubat 2013 18:56 |
Türkler ve kitap okuma oranı - Türkiye ve dünyada kitap okuma oranları araştırması. | Sevda | Türkçe | 1 | 29 Eylül 2012 20:40 |
Dosya Okuma | Lord_Raiden | mIRC Scripting Sorunları | 0 | 14 Kasım 2008 11:10 |