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ı: 16005841Toplam Puan: 64910 / Yorum Sayısı: 412005841 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. |
|