• 19-06-2013, 00:45:34
    #1
    curl ile veri çektiğim bir sayfa da 200 ün üzerinde <div class="dizi-box"> şeklinde div kodu var örnek kullanımı:
    <div class="dizi-box"><a href="dizinin-adresi"><img src="resim-adresi.png" width="120" height="90" alt="Öyle Bir Geçer Zamanki 120. Bölüm Final" /></a>
    şeklinde kullanıyor her bir dizi baslı bu sekilde 200 adet var veri çekilen sitenin ana sayfasında.
    preg_match_all('~<div class="dizi-box">.*?alt="(.*?)[0-9]~is', $bir, $diziAdi);
    ile alt="Öyle Bir Geçer Zamanki 120. Bölüm Final kısmındaki Öyle Bir Geçer Zamanki 120. Bölüm den rakamdan önceki verileri alacam. Bunu Kategori olarak Atıyacam herbir çekilen veriye göre.
    bunu foreach 'e aktarmam lazım ve dizgenin devamını saglamam lazım. php de çok iyi değilim yeni başladım takıldım kaldım burada.
    foreach{$diziAdi([1][$i] as $diziAdim) gibi yapmaya çalıştım fakat başarılı olamadım. Karşı siteden çektiğim ve her bir listelenen içeriğe kendi kategorisini atamaya çalışıyorum.
  • 19-06-2013, 01:09:02
    #2
    foreach{$diziAdi([1][$i] as $diziAdim)
    olarak değil

    foreach($diziAdi[1] as $diziAdim) {

    }
    olarak dene
    fakat öncelik preg match all un doğru die kontrol ediver
    print_r($diziAdi);
  • 19-06-2013, 01:21:16
    #3
    trgino adlı üyeden alıntı: mesajı görüntüle
    foreach{$diziAdi([1][$i] as $diziAdim)
    olarak değil

    foreach($diziAdi[1] as $diziAdim) {

    }
    olarak dene
    fakat öncelik preg match all un doğru die kontrol ediver
    print_r($diziAdi);
    preg_match_all dogru kontrol ettim foreach($diziAdi[1] as $diziAdim) { } şeklinde devam etmiyor ki. Warning: Invalid argument supplied for foreach() şeklinde hata verdi. $diziAdi[1][0] ile de denedim fakat o da işe yaramadı.
  • 19-06-2013, 13:38:24
    #4
    Güncel yapılabilmiş değil henüz.
  • 19-06-2013, 14:45:30
    #5
    Her şeyi bir dizide kayıt ettirip sonrasında foreach içerisinde kullanmak istiyorsan, preg_match_all'den hemen öncesinde array başlatıp çekilenleri array içerisine alıp sonrasında foreach döngüsünde kullanabilirsiniz.

    <?php 
    $kayit = array();
    $kayit[] = "test";
    $kayit[] = "test2";
    $kayit[] = "test3";
    
    foreach($kayit as $yeni){
    echo $yeni."<br>";
    }
    ?>
    test
    test2
    test3
  • 19-06-2013, 15:17:01
    #6
    Bu işini görür denedim
    preg_match_all('~<div class="dizi-box">.*?alt="(.*?)[0-9]~is', $bir, $diziAdi,PREG_SET_ORDER); 
    
    foreach($diziAdi as $dizi){
    	echo $dizi[1]."<br />";
    }
  • 19-06-2013, 16:04:39
    #7
    husee3 adlı üyeden alıntı: mesajı görüntüle
    Bu işini görür denedim
    preg_match_all('~<div class="dizi-box">.*?alt="(.*?)[0-9]~is', $bir, $diziAdi,PREG_SET_ORDER); 
    
    foreach($diziAdi as $dizi){
    	echo $dizi[1]."<br />";
    }
    Söylediğin şekilde denedim. sadece preg_match_all ile ilk bulduğunu seçiyor ve atıyor. sanırım for , foreach ve array() birleşimi bir şey yazmam gerekecek araştırdığım ve gördüğüm kadarıyla. Kısıtlı bilgim olduğu için 1-2 güne anca yazar bitiririm sanrım
  • 19-06-2013, 17:02:44
    #8
    ufukt51 adlı üyeden alıntı: mesajı görüntüle
    Söylediğin şekilde denedim. sadece preg_match_all ile ilk bulduğunu seçiyor ve atıyor. sanırım for , foreach ve array() birleşimi bir şey yazmam gerekecek araştırdığım ve gördüğüm kadarıyla. Kısıtlı bilgim olduğu için 1-2 güne anca yazar bitiririm sanrım

    Size lazım olan array ve foreach işlemini bir üst mesajımda yazdım hocam o tamamen sizin işini görecek şekilde.
  • 19-06-2013, 17:21:23
    #9
    Msn adlı üyeden alıntı: mesajı görüntüle
    Size lazım olan array ve foreach işlemini bir üst mesajımda yazdım hocam o tamamen sizin işini görecek şekilde.
    O şekilde de denedim fakat ++$i; gibi döngünün otomatik artarak gitmesini sağlamam lazım.
    evet o şekilde de denedim ama çekilen verilerin devamlılığını sağlamak için for döngüsüde kullanmak gerek sanırım.