Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Spider na własną stronę.
Mike122
post
Post #1





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

Ostrzeżenie: (0%)
-----


Potrzebuję stworzyć sobie "bota" który znajdzie wszystkie strony tylko w moim serwisie.
Więc po przeczytaniu paru różnych tematów na forach stworzyłem kod który znajduje linki i wyświetla je.
jednak posiadam pewien problem jak zrobić aby nie wyświetlał 4 czy 6 razy tych samych linków.
Chodzi mi żeby był raz 1 link.

  1. <?php
  2. $url = "index.html";
  3. $link = implode('', file($url));
  4. if(preg_match_all('/<a[^>]+?hrefs*?=s*?("|')?(.*?)(?(1)1[^>]*>|(?:s[^>]*>|>))(.*?)</a>/si', $link, $sub)){
  5. foreach($sub[2] as $value){
  6. if (!eregi('http://', $value)) {
  7. $link = implode('', file($value));
  8. if(preg_match_all('/<a[^>]+?hrefs*?=s*?("|')?(.*?)(?(1)1[^>]*>|(?:s[^>]*>|>))(.*?)</a>/si', $link, $sub)){
  9. foreach($sub[2] as $value){
  10. if (!eregi('http://', $value)){
  11. echo ($value);
  12. echo ("<br />");
  13. }
  14. }
  15. }
  16. }
  17. }
  18. }
  19. }
  20. ?>

Uwagi i propozycje do do zamiany jakiś funkcji mile widziane. Pozdrawiam i proszę o pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
UDAT
post
Post #2





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

Ostrzeżenie: (0%)
-----


Co ty zrobiłeś??

Dajesz na początku $links = array ( );
a zamiast wypisywania dajesz:
  1. <?php
  2. if ( ! in_array ( $link, $links ) ) {
  3. $links []= $link;
  4. echo $link;
  5. }
  6. ?>


Ten post edytował UDAT 30.06.2007, 17:15:06
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 12:28