Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Spider (wyszukiwanie URL-i)
Forum PHP.pl > Forum > Gotowe rozwiązania > Algorytmy, klasy, funkcje
Fipaj
  1. <?php
  2. class Spider {
  3. public $urls = array ();
  4. function doSearch ($url) {
  5. if (!in_array ($url, $this -> urls)) {
  6. $this -> urls[] = $url;
  7. $site = file_get_contents ($url);
  8. print ('Przeparsowano dokument: ' . $url . "\n");
  9. $data = explode ('"', $site);
  10. foreach ($data as $item) {
  11. if (ereg ('^http://', $item) && !ereg ('w3', $item)) {
  12. print (' ' . $item . "\n");
  13. $urls[] = $item;
  14. sleep (1);
  15. }
  16. }
  17. return $urls;
  18. }
  19. }
  20. function recursiveSearch ($url) {
  21. $items = $this -> doSearch ($url);
  22. if (is_array ($items)) {
  23. foreach ($items as $item) {
  24. if (!in_array ($item, $this -> urls)) {
  25. $urls = $this -> recursiveSearch ($item);
  26. }
  27. }
  28. }
  29. return $urls;
  30. }
  31. }
  32. $spider = new Spider;
  33. $spider -> recursiveSearch ('http://fipaj.livenet.pl/wiki');
  34. ?>


Podajesz URL, Spider wyświetla na ekranie znalezione na stronie URL-e, po czym za nimi podąża... I tak w kółko ;-)

Jak gdyby komuś się nudziło w sobotnie popołudnie - polecam puścić w terminalu, ładnie to wygląda. Dla lepszych wrażeń estetycznych dodałem sleep (1).

Przyda się też wszystkim tym, którzy zabierają się do pisania wyszukiwarki biggrin.gif

Pozdrawiam,
Fipaj
NuLL
To jakis wydajnosciowy joke :?: blink.gif

Przeciez to dziwaczne rozbiajanie tresci calej strony mozna zastapic preg_match_all" title="Zobacz w manualu php" target="_manual - przeciez to absurd robic cos takiego.

Pozatym
  1. <?php
  2. spider::search("www.php.pl");
  3. ?>

Tworzenie obiektu i jeszcze wywolywanie metody nie jest potrzebne dla takiej blachostki.
Fipaj
Wydajnościowy joke - tak, to jest wydajnościowy joke:
Cytat(Fipaj)
Jak gdyby komuś się nudziło w sobotnie popołudnie - polecam puścić w terminalu, ładnie to wygląda. Dla lepszych wrażeń estetycznych dodałem sleep (1).

... biggrin.gif

A PCRE nie znam ;-)

Spiderka zrobiłem dla zabawy, po małej przebudowie robocik potrafi stworzyć jednak bardzo ciekawą rzecz - mapkę linków wychodzących z danej strony WWW. Opakować to jeszcze w GD i wyjdzie całkiem całkiem ;-)

edit:
OK, jutro pouczę się PCRE i napiszę bocika od nowa ;-)
----
> ktorzy zabijaja serwery
"ktorzy zabijaja swoje serwery" ;-)
NuLL
Nie ucz ludzi pisac takie rzeczy, bo potem wyrasta pokolenie domoroslych programistow ktorzy zabijaja serwery swoimi megawydajnymi skryptami.
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.