<<= Önceki Sayfa
PHP Ana Sayfa
Sonraki Sayfa =>>
 

Virgul ile ayrilmis verilerin islenmesi : (Comma-Seperated Data or CSV)
Problem: Verileriniz bir text dosyasi icinde virgul ile ayrilmis olarak bulunuyor.


Cozum : Genelde kullanilan fgets () yerine, PHP ile beraber gelen fgetcsv () fonksiyonunu kullaniniz.


Ornek Kullanim :


<?php


$dosya_adi = isset ($argv[0]) ? $argv[0] : “php://stdin”;


$dosyaya_baglanti = @fopen ($dosya_adi, “r”) or die (“Dosya okunmak icin acilamiyor.”);


while (!@feof ($dosyaya_baglanti))
{


$satir = @fgetcsv ($dosyaya_baglanti, 1024, ‘,’);
if (!is_array ($satir)) {continue; }


$satirlar[] = $satir;


}


@fclose ($dosyaya_baglanti);




Aciklama : Virgul ile ayrilmis verileri islemek sanildigi kadar kolay degildir.En azindan diger orneklerde oldugu gibi explode () ile bu isin altindan kalkmak gercekten saglam kod yazmakla mumkundur.


Virgul ile ayrilmis verilerin oldugu bir dosyayi en guzel isleme teknigi verileri PHP’nin islemesini saglamaktir.PHP icerisinde hazir gelen fgetcsv () fonksiyonu bu is icin cok kullanislidir.


Peki verilerimiz boyle dosya icerisinde hazir olarak bulunmuyorsa ne yapilabilir?


Bu durumda , islemek istedigimiz virgul ile ayrilmis veri grubunu asagidaki gibi gecici bir dosyaya yazip orada islemektir.


Ornek Kod Parcasi :



<?php
//$veri degiskeni islemek istedigimiz virgul ile ayrilmis veriyi temsil etmektedir.


$gecici_dosya = @tmpfile () or die (“Gecici dosya yaratilamiyor”);
@fwrite ($gecici_dosya, $veri);
@fseek ($gecici_dosya, 0, SEEK_SET);


while (!@feof ($gecici_dosya))
{


$satir = @fgetcsv ($gecici_dosya, 1024, ‘,’);
if (!is_array ($satir)) {continue; }


$satirlar[] = $satir;


}


@fclose ($gecici_dosya);
//$gecici_dosya bu komut ile dosya kapatildiginda otomatik olarak dosya sisteminden silinir.
?>


Islemciyi, kompleks “Duzenli Ifadeler” kullanarak yormaktansa boyle hazir fonksiyonlari kullanmak daha iyidir.Ustelik daha da hizlidir…


Serkan Hadi Ceylani
serkan@turk-php.com




<<= Önceki Sayfa
PHP Ana Sayfa
Sonraki Sayfa =>>