cześć, czy ktoś może mi pomóc znaleźć błąd w tym skrypcie bo sił już normalnie nie mam ...
Skrypt ma służyć do zrobienia prostej mamy witryny czyli zebrać wszystkie unikalne adresy i zapisać je do pliku mapa.txt. Na początku w pliku tym znajduje się jedna linijka z adresem strony głównej.
Nie wiem dlaczego ale skrypt dopisuje wielokrotnie te same adresy do pliku mapa.txt mimo że stosuję funkcję in_array() a co za tym idzie nigdy się nie kończy (dopiero serwer przerywa).

  1. <?php
  2. include("header.php");
  3. header1();
  4.  
  5. if(!isset($licznik)) $licznik=1;
  6.  
  7. while($licznik<>0)
  8. {
  9. $licznik=0;
  10. $plik=file("mapa.txt");
  11.  
  12. $koniec=count($plik);
  13. echo "<font color='red'>$koniec</font>"; // usunac
  14.  
  15. if(count($plik)<2) $dodano=1;
  16. $start=(count($plik)-$dodano);
  17. echo '<br/><font color="red">$start' . $start . '</font>'; //usunac
  18. for($i=$start; $i<$koniec; $i++)
  19. {
  20. $wiersz=$plik[$i];
  21. $fo=fopen($wiersz, "r");
  22. while(!feof($fo))
  23. {
  24.  
  25. $linijka=fgets($fo, 99000);
  26. if(preg_match_all("/index.php[^"]+/", $linijka, $wynik))
  27.  {
  28.  
  29. foreach($wynik as $war)
  30. {
  31.  
  32. foreach($war as $link)
  33. {
  34.  
  35. $plik2=file("mapa.txt");
  36. $prefix='http://www.mojastrona/';
  37. $link=$prefix . $link;
  38. if(!in_array($link, $plik2))
  39. {
  40.  
  41. $fw=fopen("mapa.txt", "a");
  42. $link="rn" . $link;
  43. fwrite($fw, $link);
  44. echo $link . "<br/>";
  45. ob_flush();
  46. flush();
  47. $licznik++;
  48. $dodano=$licznik;
  49.  
  50. }
  51. }
  52. }
  53. }
  54.  
  55. }
  56. }
  57. }
  58.  
  59. echo "<br/>koniec raportu";
  60.  
  61. ?>