Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sprawdzanie liczby linków na stronie www
Forum PHP.pl > Forum > PHP
gkeb
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?
rzymek01
  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
Athlan
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
gkeb
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.
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.