Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] skrypt nie otwiera zadnego pliku za pomocą fopen
Forum PHP.pl > Forum > Przedszkole
kristoff
Witam
Chcę utworzyć skrypt który bedzie sprawdzał czy mój link znajduje się na jakiejś stronie. Niestety występuje dziwny błąd - pojawiają się warningi że nie może wykonać polecenia fopen (failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in ) w stosunku do wszystkich stron znajdujących się w pliku linki.txt za wyjątkiem ostatniej strony. Czyli nie otwiera np pięciu stron i otwiera tylko ostatnią szóstą przy czym jesli tą szóstą się zamieni miejscami i umieści np na pierwszym miejscu do sprawdzenia to dalej pisze że nie może otworzyć pierwszych pięciu i otwiera tylko ostatnią.

plik linki.txt składa się z kolejnych linii wypełnionych parami:
mój link##strona dosprawdzenia

całość skryptu to:
  1. <?php
  2. $ft=fopen("linki.txt", "r");
  3. while(!feof($ft)) 
  4. {
  5. $linijka=fgets($ft);
  6. $stos=array();
  7. $stos=explode("##", $linijka);
  8.  
  9. $adres_parts=parse_url($stos[1]);
  10. if($dostepnosc=fsockopen($adres_parts[host], 80, $errno, $errstr,30))
  11. {
  12. /* pobieramy tresc strony na ktorej powinien znajdowac sie nasz link */
  13.  
  14. echo "<br>$stos[1]<br>";
  15.  
  16. if($fo=fopen($stos[1], "r"))
  17. {
  18.  
  19. /* pobieramy kolejno po jednej linii kod strony na ktrorej powinien byc nasz link
     */
  20. while(!feof($fo))
  21. {
  22. $linia=fgets($fo);
  23. if($wynik=eregi("$stos[0]", $linia))
  24. {
  25. echo "nasz link jest obecny na stronie $stos[1] - <b><font color='green'>OK</font></b>";
  26.  
  27. } 
  28. if($wynik==TRUE) break;
  29.  
  30. }
  31. if($wynik<>"1") echo "nie znaleziono naszego linka na stronie $stos[1]";
  32.  
  33. } else 
  34. {
  35. echo "nie mozna pobrac strony $stos[1]";
  36. }
  37.  
  38. } else {
  39. /* jesli host na ktorym powinien byc nasz link jest nieosiagalny wyswietlamy komu
    nikat */
  40. echo 'host: <b>$adres_parts["host"] jest w tej chwili nieosiagalny</b>';
  41. }
  42.  
  43. }
  44. ?>
nospor
http://pl.php.net/manual/pl/function.fgets.php
Cytat
Czytanie kończy się kiedy przeczytano długość - 1 bajtów lub gdy wystąpi znak nowej linii (jest on dołączany do zwracanego wyniku)

Czyli twoj adres wyglada tak: jakiesadres+znakkoncawiersza
A to nie jest poprawny adres smile.gif
uzyj trim()
kristoff
dzięki, wskazówka pomogła smile.gif
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.