Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Jak sprawdzić czy link to obrazek ?
GreenGo
post
Post #1





Grupa: Zarejestrowani
Postów: 265
Pomógł: 4
Dołączył: 30.08.2004

Ostrzeżenie: (0%)
-----


Witam,
jak sprawdzić czy podany link jest obrazkiem (jpg, gif, png) ? Wpadłem tylko na pomysł aby rozłożyć go za pomocą explode() i sprawdzić czy jest na końcu ciąg znaków odpowiadający tym trzem rozszerzeniom ale chyba nie jest to najlepszy pomysł.
Go to the top of the page
+Quote Post
flashdev
post
Post #2





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


getimagesize() -> mime


--------------------
Go to the top of the page
+Quote Post
Crozin
post
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


1. Rozszerzenie nie ma kompletnie nic wspólnego z typem pliku.
2. Linki do obrazów wcale nie muszą mieć "klasycznej" formy, z nazwą pliku (zawierającą rozszerzenie).
3. Mógłbyś sprawdzić jaki nagłówek Content-Type zwraca serwer w odpowiedzi, ale to nadal nie gwarantuje, że dane dane to rzeczywiście obraz.
4. Pewność da Ci tylko dosyć kosztowny proces jakim jest pobranie i odczytanie zawartości linku - jeżeli przy odczycie nie pojawią się błędy to jest to najprawdopodobniej obraz.

PS. Do sprawdzenia rozszerzenia masz pathinfo.
Go to the top of the page
+Quote Post
flashdev
post
Post #4





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


Podsumowując można pobrać informację o typu obrazu z 4 miejsc:
- rozszerzenie pliku
- typ mime zwracany przez serwer w nagłówku
- typ mime zawarty w pliku (moje rozwiązanie powyżej)
- próba interpretacji obrazu odpowiednia funkcją zgodną z typem mime (zaproponowane przez Crozin)

Rozwiązania uporządkowałem od najmniej pewnego do najbardziej pewnego.
Przy czym to ostatnie daje 100% pewność oraz wymaga uprzedniego użycia jednego z 3 pierwszych, do określenia typu pliku - czyli wyboru funkcji.

Dodam jeszcze, że to przedostatnie rozwiązanie daje niemal 100% pewność, poza przypadkami gdy ktoś będzie chciał Cię świadomie wprowadzić w błąd, dlatego podałem to rozwiązanie jako moim zdaniem najlepsze w większości zastosowań.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 05:33