Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Jak sprawdzić czy dany adres url działa z poziomu skryptu
Forum PHP.pl > Forum > Przedszkole
amii
Pobieram z bazy adresy url a następnie w pętli wykonuje pewne operacje. Część adresów nie działa lub zawiera niewłaściwe strony. Czy można z poziomu skryptu to sprawdzić i eliminować takie przypadki z pętli ?

Próbowałem takich rozwiązań:
  1. $sql = "SELECT * FROM tabelkaurl WHERE id BETWEEN '$wartosc' AND '$ile'";
  2. //zapytanie i pobranie adresów z bazy
  3. $zapytaj = mysql_query($sql) or die ('Wystapil blad podczas laczenia sie z serwerem bazy danych w funkcji ppp : ' . mysql_error());
  4.  
  5. while ($row = mysql_fetch_array($zapytaj)) {
  6.  
  7. $wpis = $row['adresy'].'?set=zmienna'; //sprawdzamy charakterystyczną stronę
  8. $tabliczka = get_headers($wpis);
  9.  
  10. echo 'Tabliczka zero to: ' .$tabliczka[0]. ' dla strony ' .$row['adresy']. '<br>';
  11. if (strpos($tabliczka[0], '200 OK')) {

Niestety powyższy sposób nie działa gdyż status 200 OK zwracany jest dla także dla nie istniejących stron.

  1. $wpis = $row['adresy'].'?set=zmienna'; //sprawdzamy charakterystyczną stronę
  2. if (file_exists($wpis))

To też nie działa, file_exists nie może sprawdzać zdalnych adresów więc jest bezużyteczne w tym przypadku i zawsze zwraca false
Malinaa
prawdopodobnie wystarczy, coś takiego:

$url_exists = @fopen($adres_url, "r");

if ($url_exists) echo 'OK';
amii
Po części działa ale dla sporej ilości stron mieli w pętli mimo, że później widzę że tam nie ma takich plików w adresie strony.
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.