Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] - jak pobrać dane z innej strony
Forum PHP.pl > Forum > Przedszkole
-endrju-
Witam wszystkich, otóż mam taki problem, że chcę pobrać wyniki wyszukiwania ze strony wrzuta.pl. Niestety nie mam pojęcia jak się do tego zabrać.
Napisałem jedynie coś takiego
  1. <?php
  2. $url ="http://www.wrzuta.pl/search.php?type=a&words=kult";
  3. $gurl = file_get_contents($url);
  4. $wyniki = explode("<div class=\"title\">", $gurl);
  5. $wyniki = explode("</div>", $wyniki[2]);
  6. echo ($wyniki);
  7. ?>


powinno to chyba zwracać tytuł utworu muzycznego, jednak wyświetla się napis "Array".
Pomoże ktoś pobrać te dane?
--endrju--
ok, już wiem.. zapomniałem dodać [0] do $wyniki..
ale nadal mam pytania.

teraz wygląda to tak
  1. <?php
  2. $url ="http://www.wrzuta.pl/search.php?type=a&words=marley";//.$srch;
  3. $gurl = file_get_contents($url);
  4. $wyniki = explode("<div class=\"title\">", $gurl);
  5. $wyniki = explode("</div>", $wyniki[2]);
  6. echo ($wyniki[0]);
  7. ?>


ale zwraca mi to tylko jeden tytuł a ja chcę, żeby wyświetlało wszystkie, w jaki sposób mogę tego dokonać? trzeba wziąć pod uwage to że jeśli wyników jest dużo to dzielą się one na kolejne strony.
nowotny
Tablicę możesz sobie wyświetlić tak:
  1. <?php
  2. print_r($wyniki);
  3. ?>

Poczytaj sobie więcej o pracy z tablicami...
http://pl.wikibooks.org/wiki/PHP/Zmienne_i_tablice#Tablice
-endrju-
zwraca mi "Array ( [0] => )"

  1. <?php
  2. $url ="http://www.wrzuta.pl/search.php?type=a&words=kult";
  3. $gurl = file_get_contents($url);
  4. $wyniki = explode("<div class=\"title\">", $gurl);
  5. $wyniki = explode("</div>", $wyniki[2]);
  6. print_r($wyniki);
  7. ?>


Jak mam przerobić to, żeby działało poprawnie?
nowotny
Ja ci tylko napisałem jak poprawnie obejrzeć sobie co siedzi w tablicy reszta już należy do ciebie... Ja bym tutaj raczej użył wyrażeń regularnych i preg_match_all" title="Zobacz w manualu PHP" target="_manual...
-endrju-
preg_match_all - dokładnie oto mi chodziło.
dzięki ci bardzo. Srypt wygląda tak:

  1. <?php
  2. $url ="http://www.wrzuta.pl/search.php?type=a&words=marley";
  3. $gurl = file_get_contents($url);
  4. preg_match_all('|<div class="title">(.+)</div>|U', $gurl, $wyniki);
  5. print_r($wyniki);
  6. ?>


i ostatni problem wyświetla mi te dane ale pomiędzy nimi jest coś takiego

Array ( [0] => Array ( [0] =>
Damian Marley - Mr. Marley
[1] =>
Bob Marley-War
[2] =>
Bob Marley - Mr. Brown
[3] =>

itd. Co zrobić żeby nie wyświetlało napisu array [0], [1] => itp ?
nowotny
Przelecieć po tej tablicy pętlą foreach i odpowiednio wszystko wyświetlić...
-endrju-
mógł byś podać jakiś prosty przykład ?
-endrju-
napisałem chyba nawet dobrze, ale nie wyświetla żadnych danych. Chyba coś jest nie tak z tablicą wyniki.
mam taki oto kod:
  1. <?php
  2. $url ='http://www.wrzuta.pl/search.php?type=a&words=marley';
  3. $gurl = file_get_contents($url);
  4. preg_match_all('|<div class="title">(.+)</div>|U', $gurl, $wyniki); 
  5. $wyniki=array;
  6. for($i=0; $i<count($arr); ++$i)
  7. echo $arr[$i].'<br />';
  8. ?>


bardzo proszę, żeby ktoś poprawił ten kod.
nowotny
Cytat(-endrju- @ 18.02.2008, 19:13:46 ) *
napisałem chyba nawet dobrze

Chyba raczej nie...

To nie wiem w ogóle co ma robić... błąd zwraca i tyle... wywal...
  1. <?php
  2. $wyniki=array;
  3. ?>


Cytat(-endrju- @ 18.02.2008, 19:13:46 ) *
  1. <?php
  2. for($i=0; $i<count($arr); ++$i)
  3. echo $arr[$i].'<br />';
  4. ?>

Nie masz w ogóle zmiennej $arr zdefiniowanej... pomyśl chwilę co ty chcesz zrobić... przecież chciałeś inną zmienną wyświetlić, nie...? :/
-endrju-
Masz racje, poprawiłem, ale i tak nie działa. PHP znam bardzo słabo, a potrzebne mi to jest do szkoły.
Pomóżcie..
nowotny
Nie widzę nigdzie poprawionego...
-endrju-
u siebie poprawiłem..
nadal nie dział. Zresztą nvm ide na inne forum. -.-
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.