misterious
17.02.2013, 14:31:59
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
17.02.2013, 15:19:20
if($content === false) echo 'nie istnieje';
misterious
17.02.2013, 15:46:06
Przykro mi :/
Nie funkcjonuje to ;/
Możesz sam sprawdzić na tym obrazku
http://www.mctb.shop.tm/banner.png
CuteOne
17.02.2013, 18:12:27
Co znaczy nie funkcjonuje? przetestowałem i zgodnie z założeniami działa jak należy
if ($content === false)
po usunięciu małpy (@) pokaż jaki błąd wyświetli, może nie masz funkcji file_get_contents
misterious
18.02.2013, 16:32:17
$zapytanie = "SELECT `wygasa`, `kategoria`, `adres`, `obrazek`, `opis`, `id` FROM reklamy ORDER BY `id` DESC";
echo '</div><div id="glowny">'; {
if ($wiersz[0] > $dzisiaj)
{
if($content === false)
{
}
else
{
$przekieruj = '<a href="przekieruj.php?id='. $wiersz[5] .'">';
$generuj_adres = ''. $przekieruj .'<img src="'. $wiersz[3] .'" onload="resize_image(this);" alt="'. $wiersz[4] .'" style="border-radius: 10px;" /></a>';
echo '<br />Kategoria: <a href="kategorie.php?kat='. $wiersz[1] .'">'. $wiersz[1] .'</a><hr />'; }
}
}
Mam taki kod.
Błędu mi żadnego nie pokazuje
Crozin
18.02.2013, 16:52:30
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.