PHP Dersleri 28: PHP İle Girilen Veriyi Dosyaya Ekleme, Düzeltme,Silme İşlemleri
01.12.2012-19:36 Tarihinde Eklendi.
www.seyfettinkahveci.com
Oy Sayısı: 16006026Toplam Puan: 66760 / Yorum Sayısı: 412006026 adet.
Merhaba arkadaşlar sizlere bu yazımda php ile dosyaya ekleme, dosyadaki bir veriyi düzenleme ve dosyadaki bir veriyi silmeyi anlatacağım yani dosyayı bir tür veri tabanı olarak kullanacağız. Şimdi aşağıdaki kodları ve açıklamaları dikkatli bir şekilde inceleyelim.
<?php
if(isset($_POST['gonder'])){//gönder butonuna basıldıysa
$ad =$_POST['ad'];//post metoduyla gönderilen veri alınıp değişkene aktarılıyor
$vize =$_POST['vize'];//post metoduyla gönderilen veri alınıp değişkene aktarılıyor
$yaz =fopen("dosyam.txt","a+");//dosyam.txt sonuna yazma metodnda açılıyor
fputs($yaz,"$ad\t$vize\n");//açılan dosyanın içerisine \t ile formatlıbir şekilde yazılıyor
fclose($yaz);//açılan dosya kapatılıyor
}//gönder butonuna basıldıysa sonu
if(isset($_POST['Sil'])){//sil butonuna basıldıysa
$ID =$_POST['ID'];//post metoduyla gönderilen veri alınıp değişkene aktarılıyor
$ac =fopen("dosyam.txt","r");//dosyam.txt okuma metodunda açılıyor
$gecici =fopen("gecici.txt","w");//gecici.txt yazma metodunda açılıyor
$sayac =0;//sayac değişneninin ilk değeri 0 yapılıyor
while(!feof($ac)){//açılan dosyanın sonuna kadar dönülüyor
$deger=fgets($ac);//açılan dosyadan bir satır okunuyor
if(in_array($sayac,$ID)==FALSE){//eğer sayac $ID dizisinin içerisinde bulunmuyorsa aşağıdaki işlemler yapılır yani silinecek elemanlar içerisinde yoksa
fputs($gecici,$deger);//geçicinin içerisine okunan değer yazılıyor
}//
$sayac++;//sayacı bir arttır
}//dosyanın sonuna kadar dönme sonu
fclose($ac);//açılan dosya kapatılıyor
fclose($gecici);//açılan dosya kapatılıyor
unlink("dosyam.txt");//dosyam.txt dosyası siliniyor
rename("gecici.txt","dosyam.txt");//gecici.txt nin adı dosyam.txt olarak değiştiriliyor
}//sil butonuna basıldıysa sonu
if(isset($_POST['kaydet'])){//kaydet butonuna basıldıysa
$ad =$_POST['Ad'];//post metoduyla gönderilen veri alınıp değişkene aktarılıyor
$vize =$_POST['vize'];//post metoduyla gönderilen veri alınıp değişkene aktarılıyor
$ID =$_POST['ID'];//post metoduyla gönderilen veri alınıp değişkene aktarılıyor
$ac=fopen("dosyam.txt","r");//dosyam.txt okuma metodunda açılıyor
$gecici=fopen("gecici.txt","w");//gecici.txt yazma metodunda açılıyor
$sayac=0;//sayac değişneninin ilk değeri 0 yapılıyor
while(!feof($ac)){//açılan dosyanın sonuna kadar dönülüyor
$deger=fgets($ac);//açılan dosyadan bir satır okunuyor
if($ID==$sayac){//gelen düzeltilmiş verinin ıdsi ile sayac uyuşuyorsa
fputs($gecici,"$ad\t$vize\n");//düzeltişmiş veriyi gecici.txt ye formatlı yaz
}else{//uyuşmuyorsa
fputs($gecici,$deger);//geçicinin içerisine okunan değer yazılıyor
}//uyuşmuyorsa sonu
$sayac++;//sayacı bir arttır
}//dosyanın sonuna kadar dönme sonu
fclose($ac);//açılan dosya kapatılıyor
fclose($gecici);//açılan dosya kapatılıyor
unlink("dosyam.txt");//dosyam.txt dosyası siliniyor
rename("gecici.txt","dosyam.txt");//gecici.txt nin adı dosyam.txt olarak değiştiriliyor
}//kaydet butonuna basıldıysa sonu
foreach($_POST as $veri=>$anahtar){//gelen tüm post veriler taranıyor
if($anahtar=='Duzenle'){//eğer $anahtar duzenle ise
$ac=fopen("dosyam.txt","r");//dosyayı okuma modunda aç
$sayac=0;//sayaç değişkeninin ilk değeri 0
while(!feof($ac)){//dosyanın sonuna kadar dönülüyor
$okunan=fgets($ac);//açılan dosyadan 1 satır okunuyor
if($veri==$sayac){//sayac ile gelen veri değeri eşit ise
$parcala=explode("\t",$okunan);//okunan değeri formatlı yazdırdığımız şekilde yani \t ile parçalara ayırıyoruz
echo "<form action='' method='POST'>AD:<input type= 'text' name='Ad' value=\"$parcala[0]\"/><br/>
vize:<input type= text name='vize' value=\"$parcala[1]\"/><br/>
<input type= 'hidden' name='ID' value='$sayac' />
<input type= 'submit' name= 'kaydet' value='Kaydet' />
</form>";//ekrana verileri düzenleyebileceğimiz tablo konuluyor
}//sayac ile gelen veri değeri eşit ise sonu
$sayac++;//sayac 1 arttırılıyor
} //dosyanın sonuna kadar dön sonu
fclose($ac);//açılan dosya kapatılıyor
}//eğer $anahtar duzenle ise sonu
}//gelen tüm post veriler taranıyor sonu
if(file_exists("dosyam.txt")){//dosyam.txt var ise
$ac=fopen("dosyam.txt","r");//dosyam.txt okuma modunda açılıyor
echo "<form action='' method= 'POST' ><table border= '2' >";//bir form açılıyor ve ekrana 2 pixel çizgi genişliğine sahip tablo açılıyor
echo "<tr><th> Ad</th><th>Vize</th><th><input type= 'submit' name= 'Sil' value= 'Sil'/></th><th>Duzelt</th></tr>";//başlıklar atılıyor
$sayac=0;//sayac değişkeninin ilk değeri 0 yapılıyor
while(!feof($ac)){//dosyanın sonuna kadar dönülüyor
$okunan=fgets($ac);//dosyadan tek satır okunuyor
if(empty($okunan))continue;//okunan değer boş ise aşağıdaki işlemleri yapmadan while a dön
$parcalanan=explode("\t",$okunan);//verileri \t ile parçalıyor
echo "<tr>";//satır açılıyor
foreach($parcalanan as $veri){//parçalanan değerin sonuna kadar dönülüyor
echo "<td>$veri</td>";//veri ekrana yazdırılıyor
}//parçalanan değerin sonuna kadar dönülüyor sonu
echo "<td><input type='checkbox' name= \"ID[]\" value='$sayac' /></td><td><input type='submit' name='$sayac' value='Duzenle' /></td></tr>";//düzenle butonu konuluyor
$sayac++;//sayac arttırılıyor
}
echo "</table></form>";//tablo ve form kapatılıyor
fclose($ac);//açılan dosya kapatılıyor
}//dosyam.txt var ise sonu
?>
<form action="" method="POST">
ad:<input type="text" name="ad"/><br/>
vize:<input type="text" name="vize"/><br/>
<input type="submit" name="gonder" value="Dosyaya Ekle"/>
</form>
Kodların açıklamalarında her bir kodun ne işe yaradığını anlattım fakat anlamadığınız bir yer veya karşılaştığınız problem varsa yorum ekle bölümünden yazın en kısa sürede cevaplamaya çalışırım.İyi çalışmalar.
Seyfettin KAHVECİ
Balıkesir Üniversitesi
NEF-BOTE
| Uzun süredir yorumlara cevap veremediğim için sistem yeni yorumlara kapatılmıştır. Anlayışınız için teşekkürler. |
| ||||||||

