• 06-07-2017, 00:26:39
    #1
    [gizli]Merhabalar, bir iş için kendime bir bot yazıyorum. Botum kısaca karşı siteye bir numara gönderiyor ve sorgulama sonucu çıkan dökümü alıyor. Curl ile siteden veriyi çekiyorum. Fakat verileri parçalama kısmında sorun yaşıyorum. Şöyle ki verileri aldığımda döküm HTML tablo olarak geliyor ve bunu $veri[0] ile saklayıp ekrana basıyorum. Bu verileri parçalamaya geldiğimde tablodaki satırları birbirinden ayırabileceğim bir şey bulamıyorum.
    Acaba bunu nasıl yapabilirim? Amacım tablodaki satırları ayrı ayrı ayırdıktan sonra bu satırların içerisindeki her sütunun verisini adsoyad - tarih - borc - gecikmebedeli - toplambedel diye ayırmak ve bunlar ile site üzerinde bir kayıt oluşturabilmek.

    <?php
    $sicil_no = $_GET['sicil_no'];
    
    faturaSorgula($sicil_no);
    
    function faturaSorgula($sicil_no)
    {
    $ch = curl_init();
    $zaman = 5;
    curl_setopt($ch,CURLOPT_BINARYTRANSFER,true);
    curl_setopt( $ch , CURLOPT_URL , $veriurl);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $zaman);
    $site = curl_exec($ch);
    curl_close($ch);
    $site = iconv("ISO-8859-9","UTF-8",$site);
    
    
    preg_match("@<table class='brc-tbl' border='0' cellpadding='0' cellspacing='0'>(.*?)<tr class='brc-gnl-top '>@si",$site,$veri1);
    
    print_r($veri1[0]);
    
    } ?>

    Bu şekilde yaptığım işlem sonrasında bana gelen veriler de şu şekilde

    <tr class='brc-title'><br/><table class='brc-tbl' border='0' cellpadding='0' cellspacing='0'>
    <tr class='brc-mkf'><td colspan='10'>
    <table width='100%' class='brc-mkf-tbl' border='0' cellpadding='0' cellspacing='0'>
    <tr>
    <td class='brc-scl-txt'>MUSTERI</td>
    <td class='brc-scl-no'>123456</td>
    <td class='brc-mkf-txt'>ADI SOYADI</td>
    <td class='brc-mkf-adi'>***** ******</td>
    </tr>
    </table>
    </td></tr>
    <tr class='brc-title'>
    <td class='brc-exp'>&nbsp;</td>
    <td class='brc-chk'>SEÇ</td>
    <td class='brc-dnm'>DÖNEMİ</td>
    <td class='brc-abn'>ABONE</td>
    <td class='brc-gtr'>AÇIKLAMA</td>
    <td class='brc-sot'>SONODEME</td>
    <td class='brc-tut'>TUTAR</td>
    <td class='brc-gcz'>GECİKME</td>
    <td class='brc-top'>TOPLAM</td>
    </tr>
    <tr class='glr-01'>
    <td class='brc-exp'>&nbsp;</td>
    <td class='brc-chk'>
    <input type='checkbox' name='CB0001' onclick='my.process();' />
    </td>
    <td class='brc-dnm'>2017/07</td>
    <td class='brc-abn'>&nbsp;</td>
    <td class='brc-gtr'>Kategori</td>
    <td class='brc-sot'>20/07/2017</td>
    <td class='brc-tut'>49.62</td>
    <td class='brc-gcz'>&nbsp;</td>
    <td class='brc-top'>49.62</td>
    </tr>
    <tr class='glr-11'>
    <td class='brc-exp'>&nbsp;</td>
    <td class='brc-chk'>
    <input type='checkbox' name='CB0002' onclick='my.process();' />
    </td>
    <td class='brc-dnm'>2017/2-1</td>
    <td class='brc-abn'>&nbsp;</td>
    <td class='brc-gtr'>Kategori</td>
    <td class='brc-sot'>30/11/2017</td>
    <td class='brc-tut'>49.50</td>
    <td class='brc-gcz'>&nbsp;</td>
    <td class='brc-top'>49.50</td>
    </tr>
    <tr class='glr-12'>
    <td class='brc-exp'>&nbsp;</td>
    <td class='brc-chk'>
    <input type='checkbox' name='CB0003' onclick='my.process();' />
    </td>
    <td class='brc-dnm'>2017/2-1</td>
    <td class='brc-abn'>&nbsp;</td>
    <td class='brc-gtr'>Kategori</td>
    <td class='brc-sot'>30/11/2017</td>
    <td class='brc-tut'>29.70</td>
    <td class='brc-gcz'>&nbsp;</td>
    <td class='brc-top'>29.70</td>
    </tr>
    [/gizli]
  • 06-07-2017, 00:29:54
    #2
    goksel adlı üyeden alıntı: mesajı görüntüle
    [gizli]Merhabalar, bir iş için kendime bir bot yazıyorum. Botum kısaca karşı siteye bir numara gönderiyor ve sorgulama sonucu çıkan dökümü alıyor. Curl ile siteden veriyi çekiyorum. Fakat verileri parçalama kısmında sorun yaşıyorum. Şöyle ki verileri aldığımda döküm HTML tablo olarak geliyor ve bunu $veri[0] ile saklayıp ekrana basıyorum. Bu verileri parçalamaya geldiğimde tablodaki satırları birbirinden ayırabileceğim bir şey bulamıyorum.
    Acaba bunu nasıl yapabilirim? Amacım tablodaki satırları ayrı ayrı ayırdıktan sonra bu satırların içerisindeki her sütunun verisini adsoyad - tarih - borc - gecikmebedeli - toplambedel diye ayırmak ve bunlar ile site üzerinde bir kayıt oluşturabilmek.

    <?php
    $sicil_no = $_GET['sicil_no'];
    
    faturaSorgula($sicil_no);
    
    function faturaSorgula($sicil_no)
    {
    $ch = curl_init();
    $zaman = 5;
    curl_setopt($ch,CURLOPT_BINARYTRANSFER,true);
    curl_setopt( $ch , CURLOPT_URL , $veriurl);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $zaman);
    $site = curl_exec($ch);
    curl_close($ch);
    $site = iconv("ISO-8859-9","UTF-8",$site);
    
    
    preg_match("@<table class='brc-tbl' border='0' cellpadding='0' cellspacing='0'>(.*?)<tr class='brc-gnl-top '>@si",$site,$veri1);
    
    print_r($veri1[0]);
    
    } ?>

    Bu şekilde yaptığım işlem sonrasında bana gelen veriler de şu şekilde

    <tr class='brc-title'><br/><table class='brc-tbl' border='0' cellpadding='0' cellspacing='0'>
    <tr class='brc-mkf'><td colspan='10'>
    <table width='100%' class='brc-mkf-tbl' border='0' cellpadding='0' cellspacing='0'>
    <tr>
    <td class='brc-scl-txt'>MUSTERI</td>
    <td class='brc-scl-no'>123456</td>
    <td class='brc-mkf-txt'>ADI SOYADI</td>
    <td class='brc-mkf-adi'>***** ******</td>
    </tr>
    </table>
    </td></tr>
    <tr class='brc-title'>
    <td class='brc-exp'>&nbsp;</td>
    <td class='brc-chk'>SEÇ</td>
    <td class='brc-dnm'>DÖNEMİ</td>
    <td class='brc-abn'>ABONE</td>
    <td class='brc-gtr'>AÇIKLAMA</td>
    <td class='brc-sot'>SONODEME</td>
    <td class='brc-tut'>TUTAR</td>
    <td class='brc-gcz'>GECİKME</td>
    <td class='brc-top'>TOPLAM</td>
    </tr>
    <tr class='glr-01'>
    <td class='brc-exp'>&nbsp;</td>
    <td class='brc-chk'>
    <input type='checkbox' name='CB0001' onclick='my.process();' />
    </td>
    <td class='brc-dnm'>2017/07</td>
    <td class='brc-abn'>&nbsp;</td>
    <td class='brc-gtr'>Kategori</td>
    <td class='brc-sot'>20/07/2017</td>
    <td class='brc-tut'>49.62</td>
    <td class='brc-gcz'>&nbsp;</td>
    <td class='brc-top'>49.62</td>
    </tr>
    <tr class='glr-11'>
    <td class='brc-exp'>&nbsp;</td>
    <td class='brc-chk'>
    <input type='checkbox' name='CB0002' onclick='my.process();' />
    </td>
    <td class='brc-dnm'>2017/2-1</td>
    <td class='brc-abn'>&nbsp;</td>
    <td class='brc-gtr'>Kategori</td>
    <td class='brc-sot'>30/11/2017</td>
    <td class='brc-tut'>49.50</td>
    <td class='brc-gcz'>&nbsp;</td>
    <td class='brc-top'>49.50</td>
    </tr>
    <tr class='glr-12'>
    <td class='brc-exp'>&nbsp;</td>
    <td class='brc-chk'>
    <input type='checkbox' name='CB0003' onclick='my.process();' />
    </td>
    <td class='brc-dnm'>2017/2-1</td>
    <td class='brc-abn'>&nbsp;</td>
    <td class='brc-gtr'>Kategori</td>
    <td class='brc-sot'>30/11/2017</td>
    <td class='brc-tut'>29.70</td>
    <td class='brc-gcz'>&nbsp;</td>
    <td class='brc-top'>29.70</td>
    </tr>
    [/gizli]
    explode kullanabilirsin.aşağıda bir örnek var.

    $bol = explode("ayrac",$gelen);
  • 06-07-2017, 00:33:34
    #3
    BoraBozdogan adlı üyeden alıntı: mesajı görüntüle
    explode kullanabilirsin.aşağıda bir örnek var.

    $bol = explode("ayrac",$gelen);
    Hocam yorumunuz için teşekkür ederim fakat şöyle bir sorunum daha var gelen div class ları benim almak istediğim veri satırlarının tümünde aynı kullanılmış. Ben bu verileri nasıl birbiriyle ilişkili olduğunu algılayamadım. Şöyle ki
    ilk verim <tr class="glr-01">icerikler</tr> şeklinde
    2.verim de aynı tr classı içerisinde yine aynı şekilde. Bir de arada çıkan farklı borçlarda bu glr-01 kısmı değişiyor. Ben bu her satırı parçalayıp veriyi alabilmek için nasıl bir döngü kullanmalıyım? Diyelim bir müşteride 5 adet borç çıktı ve 5 defa döngüyü döndürebildim ve bu şekilde parçaladım diğer müşteride 10 adet çıktı bu döngünün sayısını belirleyebileceğim yol nedir? Eğer mantığını anlayabileceğim başka bir örnek verebilirseniz çok sevinirim.

    Not bir diğer problemimde verileri bahsettiğiniz explode ile $bol = explode("<tr class='glr-12'>",$veri); şeklinde böldüm. Fakat ekrana bastığım verinin tüm <td> taglari da gitti.

    &nbsp;
    
    <input type="checkbox" name="CB0003" onclick="my.process();">
    
    2017/2-1
    &nbsp;
    Kategori
    30/11/2017
    29.70
    &nbsp;
    29.70
    şekline dönüştü.
  • 06-07-2017, 00:56:07
    #4
    goksel adlı üyeden alıntı: mesajı görüntüle
    Hocam yorumunuz için teşekkür ederim fakat şöyle bir sorunum daha var gelen div class ları benim almak istediğim veri satırlarının tümünde aynı kullanılmış. Ben bu verileri nasıl birbiriyle ilişkili olduğunu algılayamadım. Şöyle ki
    ilk verim <tr class="glr-01">icerikler</tr> şeklinde
    2.verim de aynı tr classı içerisinde yine aynı şekilde. Bir de arada çıkan farklı borçlarda bu glr-01 kısmı değişiyor. Ben bu her satırı parçalayıp veriyi alabilmek için nasıl bir döngü kullanmalıyım? Diyelim bir müşteride 5 adet borç çıktı ve 5 defa döngüyü döndürebildim ve bu şekilde parçaladım diğer müşteride 10 adet çıktı bu döngünün sayısını belirleyebileceğim yol nedir? Eğer mantığını anlayabileceğim başka bir örnek verebilirseniz çok sevinirim.

    Not bir diğer problemimde verileri bahsettiğiniz explode ile $bol = explode("<tr class='glr-12'>",$veri); şeklinde böldüm. Fakat ekrana bastığım verinin tüm <td> taglari da gitti.

    &nbsp;
    
    <input type="checkbox" name="CB0003" onclick="my.process();">
    
    2017/2-1
    &nbsp;
    Kategori
    30/11/2017
    29.70
    &nbsp;
    29.70
    şekline dönüştü.
    sana tam hangılerı lazım dönüşen verilerden?
  • 06-07-2017, 01:01:07
    #5
    BoraBozdogan adlı üyeden alıntı: mesajı görüntüle
    sana tam hangılerı lazım dönüşen verilerden?
    <td class='brc-dnm'>2017/07</td>

    <td class='brc-gtr'>Kategori</td>
    <td class='brc-sot'>20/07/2017</td>
    <td class='brc-tut'>48.62</td>
    <td class='brc-gcz'>1.00</td>
    <td class='brc-top'>49.62</td>

    bu veriler gerekiyor hocam. bu verileri getirip sonra bunların içerisindeki verileri tek tek değiskenlere atıp veritabanıma aktaracağım
  • 06-07-2017, 01:07:21
    #6
    goksel adlı üyeden alıntı: mesajı görüntüle
    <td class='brc-dnm'>2017/07</td>

    <td class='brc-gtr'>Kategori</td>
    <td class='brc-sot'>20/07/2017</td>
    <td class='brc-tut'>48.62</td>
    <td class='brc-gcz'>1.00</td>
    <td class='brc-top'>49.62</td>

    bu veriler gerekiyor hocam. bu verileri getirip sonra bunların içerisindeki verileri tek tek değiskenlere atıp veritabanıma aktaracağım
    en basitinden 6 tane degisken tanımla.ve verileri explode ettir o zaman.

    arraylere aktarır verılerı oradan da kolayca çekersin.

    bunu yap ardından db ye aktar
  • 06-07-2017, 01:11:04
    #7
    BoraBozdogan adlı üyeden alıntı: mesajı görüntüle
    en basitinden 6 tane degisken tanımla.ve verileri explode ettir o zaman.

    arraylere aktarır verılerı oradan da kolayca çekersin.

    bunu yap ardından db ye aktar
    Çok teşekkür ederim şuanda benim yapmaya çalıştığım şey ile sanıyorum söylediğiniz şey aynı veriler kaynak kodlarında düzgün şekilde görünüyorlar td lerin kaybolması gibi bir durum yokmuş öğeyi denetlede öyle görünmekteymiş. son bir sorum daha olacak hocam,
    ben bu satır sayısını nasıl bularak verilerin döngü ile parçalanmasını sağlayabilirim? <tr> classı olarak glr-01 , glr-11, glr-12 bunların sayısını substr ile bulabilirim sanırım ve bu bulduğum sayı kadar döngüyü döndürerek parçalarım bütün verilerin bulunduğu değiskenden fakat döngüde explode işlemi yaparken bu verilerin karışması gibi bir durum söz konusu olur mu?
  • 06-07-2017, 01:16:02
    #8
    goksel adlı üyeden alıntı: mesajı görüntüle
    Çok teşekkür ederim şuanda benim yapmaya çalıştığım şey ile sanıyorum söylediğiniz şey aynı veriler kaynak kodlarında düzgün şekilde görünüyorlar td lerin kaybolması gibi bir durum yokmuş öğeyi denetlede öyle görünmekteymiş. son bir sorum daha olacak hocam,
    ben bu satır sayısını nasıl bularak verilerin döngü ile parçalanmasını sağlayabilirim? <tr> classı olarak glr-01 , glr-11, glr-12 bunların sayısını substr ile bulabilirim sanırım ve bu bulduğum sayı kadar döngüyü döndürerek parçalarım bütün verilerin bulunduğu değiskenden fakat döngüde explode işlemi yaparken bu verilerin karışması gibi bir durum söz konusu olur mu?
    Dizi içindeki satır sayısın aşağıdaki şekilde bulabılırsın.
    $dizi = array("veri1","veri2");
    echo count($dizi);

    döngüden kasıt ne tam açar mısın hocam
  • 06-07-2017, 01:23:57
    #9
    BoraBozdogan adlı üyeden alıntı: mesajı görüntüle
    Dizi içindeki satır sayısın aşağıdaki şekilde bulabılırsın.
    $dizi = array("veri1","veri2");
    echo count($dizi);

    döngüden kasıt ne tam açar mısın hocam
    şöyle anlatayım hocam,
    mesela müşterinin numarasıyla sorgulama yaptığımda 3 adet faturası çıktı ve bu faturaların cinsleri mesela vergi borcu , market borcu, fatura borcu seklinde 3 kategori. Ben bu sorgulamayı yaptığımda bu borclar alt alta sıralanıyor ve hepsinin <tr> classı glr-01 glr-02 ve glr-03 olarak ayrı ayrı isimlendirilmiş. Şimdi ben bu sahsın verilerini parçalarken 3 adet borcu olduğu için 3 borcunu da bahsettiğim parçalara ayıracağım dönem, kategori,son ödeme,tutar,gecikme ve toplam şeklinde. bu döngüyü nasıl oluşturacağım diye sormuştum. Sanırım sizin verdiğiniz bu kodta aslında bu soruma yönelik oldu