<?php
preg_match_all('#a href=(.*?)#si',$sayfa,$linkleri_al);
foreach ($linkleri_al[1] as $deger=>$linkler ){
// bla bla bla bla
preg_match_all('#img=(.*?)#si',$ikinci_sayfa,$resimleri_al);
foreach ($resimleri_al[1] as $deger_2=>$resimler ){
//resimler değişkeninde 5 adet resim var
}
// bu resimleri döngü dışında her birini bir değişkene aktarmam lazım
// örnek $resim1 = $resimler[0] gibi;
}
?> İç içe Foreach'de Diziye alma Sorunu
8
●4.244
- 27-01-2014, 19:54:31Beyler Bir noktada tıkandım neyi denediysem çözüm olmadı...
- 27-01-2014, 20:10:31Resimler zaten $resimleri_al arrayında mevcut direk ordan kullanabilirsin.haXan1711 adlı üyeden alıntı: mesajı görüntüle
Daha rahat kullanmak için foreach içinde baska bir arraya da alabilirsin.
Yok illa böyle yapacam diyorsan
$say = 0; preg_match_all('#img=(.*?)#si', $ikinci_sayfa, $resimleri_al); foreach ($resimleri_al[1] as $deger_2 => $resimler) { $say++; $isim1 = "resim" . $say; $$isim2 = $resimler[0]; //$resimler[0] i salladim sen onu ayarlarsin gelen veriye göre. }bu şekilde yapabilirsin. $resim1 $resim2 $resim3 diye gider. - 27-01-2014, 20:19:16LaCReMeL adlı üyeden alıntı: mesajı görüntüle
Bende dizi içinde olduğunu düşündüm ve
$resim1 = $resimler[0];
yaptığımda $resimler değişkeni şayet "http://www.resimlinki.com/1.jpg" ise bu metindeki ilk karakteri alıyor.
Yani ekrana echo $resim1; yazdırdığımda h sonucunu veriyor... O yüzden $resimler değişkeninin içerisindekileri bir diziye aktarmam gerekiyor sandım...
Netice sorun çözülmedi maalesef.. - 27-01-2014, 20:48:55foreach içindeki $resimler bir dizi değil de string olduğu için $resimler[0] yaparsan stringin ilk harfini alirsin yani "h" harfihaXan1711 adlı üyeden alıntı: mesajı görüntüle
orada
$resim[] = $resimler;
yapman lazim. $resim dizisinde resimleri toplarsin. istersen print_r($resim); yapınca görürsün arrayın içindekileri. daha sonra $resim[0] $resim[1] $resim[2] şeklinde kullanabilirsin. - 27-01-2014, 21:24:36O yöntemi denedim çalışıyor dediğiniz gibi fakat nedense şu şekilde hata veriyor;LaCReMeL adlı üyeden alıntı: mesajı görüntüle
Örnek:
ilk preg_match_all'da 8 tane link alıyor diyelim.
ikinci preg_match_all'da her bir linke girip sayfadaki 5 adet resmi alması gerekiyor ve ekrana resim linklerini basması gerekiyor.
8 tane linki alıyor sorun yok. Her bir sayfaya girip resimleri de alıyor diye beklerken ilk linke girip resimleri alıp ekrana basıyor sonraki aşamada sürekli ilk linkteki resimleri gösteriyor. Yani diğer 7 linkteki resimleri göstermiyor....
Karmaşık bir fonksiyon yok yukarıda verdiğim foreach döngülerinde oluyor bu olay nedense....
Bir türlü çözemedim... - 27-01-2014, 21:38:17Evet dediğiniz gibi almak istediğim tüm linklere ait resimleri ekrana bastı...LaCReMeL adlı üyeden alıntı: mesajı görüntüle

Peki güzel de ben bunları nasıl tek tek değişken içerisine koyacağım ? Yani aslında şu anda var_dump ile istediğim şeyleri ekrana bastı da resimleri dediğim gibi nasıl değişkenler içerisine koyucam ? Sizide yordum kusuruma bakmayın hakkınızı helal edin... - 27-01-2014, 21:49:01foreach ile döndürdüğünüz için değişkene alamazsınız.haXan1711 adlı üyeden alıntı: mesajı görüntüle
aşağıdaki gibi bir foreach kullandınız varsayalım
foreach($array as $key=>$value){
$degisken1 = $value;
}
şeklinde bir atama yaparsanız $degisken1 değeriniz dizideki en son eleman olarak size dönecektir. değişkende değilde arrayda tutarsanız sorunsuz kullanabilirsiniz.
sizin ilk verdiğiniz örneğe göre
preg_match_all('#a href=(.*?)#si',$sayfa,$linkleri_al); foreach ($linkleri_al[1] as $deger=>$linkler ){ preg_match_all('#img=(.*?)#si',$ikinci_sayfa,$resimleri_al); foreach ($resimleri_al[1] as $deger_2=>$resimler ){ $sonuc[$deger][]=$resimler; } }üstteki gibi bir yapı kullanırsanız
var_dump($sonuc);
dediğinizde hepsini almış olursunuz.
e aldıkta bunu nasıl kullanacağız.
1. linkin 1. resmini almak için
echo $sonuc[0][0];
komutunu kullanabilirsiniz. Not: diziler 0 dan başlar.
2. linkin 5. resmini almak için
echo $sonuc[1][4];
şeklinde... - 27-01-2014, 21:58:49S_HA_DO_W adlı üyeden alıntı: mesajı görüntüle
Çok teşekkürler bu işimi görecek...
Diğer arkadaşında ellerine sağlık sağolsun çok yardımcı oldu...