Virgul ile ayrilmis verilerin islenmesi : (Comma-Seperated Data or CSV)

'HTML-PHP-ASP-JAVA' forumunda Mavi_Sema tarafından 15 Mayıs 2009 tarihinde açılan konu

  1. Mavi_Sema

    Mavi_Sema Özel Üye

    Sponsorlu Bağlantılar
    Virgul ile ayrilmis verilerin islenmesi : (Comma-Seperated Data or CSV) konusu 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:
        <?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_baglanti1024,);
            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:
        <?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_dosya0SEEK_SET);


        while (!@
    feof ($gecici_dosya))
        {


            
    $satir = @fgetcsv ($gecici_dosya1024,);
            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…
     

Bu Sayfayı Paylaş