Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> sprawdzanie liczby linków na stronie www, problem
gkeb
post
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 6.03.2004

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


Mam nastepujacy problem. Chciałbym zliczyc ilosc linkow na stronie www (strony na innych serwerach niz wykonywany skrypt). Pomyslalem, podumalem, pogooglowalem i wymyslilem cos takiego:
  1. <?php
  2. $a=fopen('http://www.moja-domena.pl/index.php', 'r');
  3. $strona=fread($a, 99999999);
  4. echo $strona;
  5. echo "<br>";
  6. preg_match_all("/<a href=[^<]+>/si",$strona,$linki);
  7. print_r ($linki);
  8. ?>

i niby dziala ok ale nie do konca. Problemem jest to ze nie wczytuje całego pliku (prawdopodobnie) i przez to nie zlicza wszystkich linków. Gdzie tkwi problem?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
rzymek01
post
Post #2





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

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


  1. <?php
  2. $strona=fread($a, 99999999); //może strona zajmuje więcej niż 99999999?
  3. preg_match_all('/<a href=[^<]+>/si',$strona,$linki); //nie uwzględniłeś znacznika title, rel, class, id
  4. ?>

smile.gif


--------------------
:]
Go to the top of the page
+Quote Post
Athlan
post
Post #3





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


zmien przede wszystkim początek:

  1. <?php
  2. $file = 'http://www.moja-domena.pl/index.php';
  3. $a=fopen($file, 'r');
  4. $strona=fread($a, filesize($file));
  5.  
  6. // ...
  7.  
  8. ?>


poza tym podałeś jeden format linków, ja bym zliczyl wszystkie:
href=""

pozdrawiam smile.gif


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
gkeb
post
Post #4





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 6.03.2004

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


Co do wielkości wczytywanego pliku to nie wierze by jakakolwiek strona przekroczyla ta wartosc (99 999 999 znaków to ponad 95MB), zastanawia mnie czy po prostu z jakiegos powodu nie zostaje zerwane połączenie, musze potestowac jeszcze. Czy nie lepszym rozwiazaniem wczytywania byłby cURL??
Co do nie brania pod uwage dodatkowych wlasciwosci znacznika <a> (tilte, id, itp.) to nie sa one mi potrzebne, wiec nie brałem ich pod uwage. Myślisz ze inaczej powinno byc skonstruowane wyrażenie regularne??

====edit 1====

@Athlan sprawdzajac po "href" bede miał w wyniku rowniez linki w js, a tego nie chce.

====edit 2====

Wlasnie przetestowalem to rozwiazanie Athlana z dopiska filesize. Niestety ta funkcja nie pobiera informacji o wielkosci pliku zdalnie. Dzialaloby lokalnie, a tak to ja nie chciałem.

Ten post edytował gkeb 3.08.2006, 17:59:56
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 06:35