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/wwwroot/bir_dosya.txt";
if ($dosya = (fopen ($dosya_adi , 'r') ) ) {
print ("Dosya 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/wwwroot/bir_dosya.txt";
if ($dosya = (fopen ($dosya_adi , 'r') ) ) {
print ("Dosya 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.