![]() |
![]() ![]() |
![]() |
![]()
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ł. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
getimagesize() -> mime
-------------------- |
|
|
![]()
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. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
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ń. -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 05:33 |