Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Wykrycie nieistniejącego obrazka
Forum PHP.pl > Forum > Przedszkole
misterious
Witam!
Nigdzie nie mogę się doszukać rozwiązania, więc zwracam się do was.
Mam stronę, na której znajdują się obrazki z zewnętrznych stron.
Aktualnie jedna strona ma awarię, więc chciałbym ten obrazek ukryć - i tutaj potrzebuję ten skrypt, który wykryje że plik z podanego adresu nie istnieje
CuteOne
  1. $content = @file_get_contents('http://w.pl/obrazek.jpg');
  2.  
  3. if($content === false) echo 'nie istnieje';
misterious
Przykro mi :/
Nie funkcjonuje to ;/
Możesz sam sprawdzić na tym obrazku http://www.mctb.shop.tm/banner.png closedeyes.gif
CuteOne
Co znaczy nie funkcjonuje? przetestowałem i zgodnie z założeniami działa jak należy
  1. $content = file_get_contents('http://www.mctb.shop.tm/banner.png');
  2. if ($content === false)
  3. echo 'a';


po usunięciu małpy (@) pokaż jaki błąd wyświetli, może nie masz funkcji file_get_contents
misterious
  1. $zapytanie = "SELECT `wygasa`, `kategoria`, `adres`, `obrazek`, `opis`, `id` FROM reklamy ORDER BY `id` DESC";
  2. $idzapytania = mysql_query($zapytanie);
  3. $dzisiaj = time();
  4. echo '</div><div id="glowny">';
  5. while ($wiersz = mysql_fetch_row($idzapytania))
  6. {
  7. if ($wiersz[0] > $dzisiaj)
  8. {
  9. $content = file_get_contents("$wiersz[3]");
  10. if($content === false)
  11. {
  12. echo 'siema';
  13. }
  14. else
  15. {
  16. $przekieruj = '<a href="przekieruj.php?id='. $wiersz[5] .'">';
  17. $generuj_adres = ''. $przekieruj .'<img src="'. $wiersz[3] .'" onload="resize_image(this);" alt="'. $wiersz[4] .'" style="border-radius: 10px;" /></a>';
  18. echo $generuj_adres;
  19. echo '<br />Kategoria: <a href="kategorie.php?kat='. $wiersz[1] .'">'. $wiersz[1] .'</a><hr />';
  20. }
  21. }
  22. }

Mam taki kod.

Błędu mi żadnego nie pokazuje wink.gif
Crozin
1. Pod podanym przez Ciebie linkiem (http://www.mctb.shop.tm/banner.png) mamy dostęp do "normalnej" strony o dziwnym adresie. Serwer zwraca poprawny dokument HTML.
2. Żeby sprawdzić czy obrazek pod danym URL-em jest w porządku należałoby sprawdzić kilka nagłówków z odpowiedzi na żądanie HTTP: status odpowiedzi - 2xx oraz 3xx będą OK oraz nagłówek Content-Type pasujący do obrazów (np. image/png).
3. To jednak nadal nie gwarantuje poprawności obrazu. Dalszym krokiem byłoby pobranie zawartości (odpowiedzi) i potraktowanie jej jakąś funkcją oczekującą poprawnego pliku z obrazem. Jeżeli korzystasz z GD będzie to imagecreatefrom[jpeg|gif|png|...]. Jeżeli funkcja ta nie zwróci błędu będzie oznaczać to, że pobrany plik już niemal na 100% jest poprawnym obrazem i przeglądarka użytkownika będzie wstanie go wyświetlić.

PS. Zamiast każdorazowo sprawdzać kilka(dziesiąt?) plików na innych serwerach, lepiej byłoby Ci skopiować je, a później serwować ze swojego serwera.
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.