• 18-01-2010, 12:32:02
    #1
    Üyeliği durduruldu
    Herkese iyi geceler öncelikle,

    Sorunumu en açık şekilde anlatmaya çalışayım..

        $baslik = '(<a href="(.*)" class="indexHaberBaslik">(.*?)</a>)';                     
        preg_match_all($baslik, $site, $a);
        $a = $a[2];
        
        $kisa = '(<span class="indexhaber"><div class="linkz01">(.*?)</span>)';
        preg_match_all($kisa, $site, $b);
        $b = $b[1];
        
        $image = '(<img src="(.*)" width="120" alt="" align="(.*?)" hspace="(.*?)" border="0">)';
        preg_match_all($image, $site, $c);
        $c = $c[1];
        
        $i = 0;
        foreach($a as $yaziadi)
        {
            $ozet    = $b[$i];
            $resim    = $c[$i];
    Amacım $a, $b ve $c dizilerini aynı eleman olarak geçerli kılmak. Yani bu çektiğim verileri sıralarken;

    - yazıadı 1 » $a nın 1. elemanı gelmeli
    - özet 1 » $b nin 1. elemanı gelmeli
    - resim 1 » $c nin 1. elemanı gelmeli

    Bu verileri inputlara yazdırıyorum ve yukarıdaki şekilde yaptığımda tüm yazı adlarını çekebildiğim halde, özetlerin ve resimlerin sadece ilk elemanları yazılıyor inputlara..

    Yardımlarınızı bekliyorum.
  • 18-01-2010, 12:41:23
    #2
    Üyeliği durduruldu
    bunun icin sizin yaptiginiz gibi foreach en pratik cozum hocam. soyle ki;

    for($i=0; $i<count($a); $i++ ){
         $sonuc[$i] = array("adi"=>$a[$i], "ozet"=> = $b[$i], "resim"=>$c[$i]);
    }
    boyle bir kod ile elinizde sonuc dizisi olusmus olur

    $sonuc[0]["adi"]

    gibide erişilebilinir