Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Tablica z wynikiem pętli foreach
Forum PHP.pl > Forum > Przedszkole
Matt23
Witam zebranych,
ttworzę skrypt który pobierze mi liste linków z innej strony
Żeby parsować html korzystam z pluginu HTML Simple Dom Parser. Problem pojawia się w miejscu, gdy chcę wrzucić wynik do tablicy

  1. $http = "http:/";
  2. foreach($html->find('div#gallery') as $wynik){
  3.  
  4. foreach($wynik->find('a') as $wynik){
  5.  
  6. $wynik=$wynik->href.'<br>';
  7. $wynik=$http.$wynik;
  8. echo $wynik;
  9. }
  10. }


Ten kodzik zwraca mi listę linków. Jednakże każdy ze zwróconych linków muszę jeszcze raz parsować, dlatego aby rozdzielić linki z jednej zmiennej chciałem zrobić tablicę. Nie udaje mi się to ani gdy tworzę ją poza pętlami, ani gdy tworzę ją w pętli. W tym drugim przypadku var dump pokazuje, że do tablicy trafił tylko pierwssy z pobranych adresów. Zmienna poza pętla nie jest wcale dostępna, czy można coś z tym zrobić?
vermis
Przed pętlą wstawiasz
  1. $tablica = array();

w pętli foreach (na początku) wstawiasz wyniki do tablicy
  1. $tablica[] = $wynik->href;

Później nadpisujesz zmienną $wynik, więc musi to być na początku pętli.
Matt23
@up,
Twoja odpowiedź mi pomogła, aczkolwiek borykam się z następnym problemem.

  1. $ile = count($tablica);
  2.  
  3. for ($num=0; $num <= $ile ; $num++) {
  4. $html = $tablica[$num];
  5.  
  6. foreach($html->find('div#largepic') as $wynik){
  7. foreach($wynik->find('img') as $wynik){
  8. $wynik = $wynik->src;
  9. echo '<img src="'.$wynik.'">';
  10. }
  11. }
  12. }


Ten kodzik wykonuje się po poprzednim i niestety wyrzuca mi error w linijce 6 - Fatal error: Call to a member function find() on a non-object.

Dziwne, bo analogiczna instrukcja działa bez problemu parę linijek wyżej.
Turson
$html = $tablica[$num];
foreach($html->find('div#largepic') as $wynik)

$html ma być obiektem klasy Simple HTML Dom a nie byle czym
Matt23
W tej linijce $html przyjmuje za wartość adres url wyjęty z tablicy pełnej adresów, więc niby nie powinno być problemu.

Masz może jakiś sposób na to?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.