Istnieje obraz w formacie ciągu znaków, wyprowadzenie tego ciągu z niektórymi nagłówkami typu MIME wystarczy, aby renderować go na stronie, jak sprawdzić, czy ten ciąg jest obrazem?Sprawdź, czy ciąg znaków jest obrazem
Odpowiedz
"Zasób obrazu zostanie zwrócony po powodzeniu.FALSE jest zwracana, jeśli typ obrazu jest nieobsługiwany, dane nie mają rozpoznanego formatu lub obraz jest uszkodzony i nie można go załadować."
Przykład:
<?php
$data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
. 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
. 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
. '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$data = base64_decode($data);
$im = imagecreatefromstring($data);
if ($im !== false) {
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
}
else {
echo 'An error occurred.';
}
?>
Musisz tłumić błędy używając '@', albo jesteś skazany na to 'imagecreatefromstring()'. – Niranjan
@ngen Jakikolwiek sposób uniknąć zguby i jednocześnie unikać używania @? –
@YuriKolovsky Nie możesz. Ponieważ próbujesz załadować ciąg znaków do funkcji, która oczekuje obrazu. Nie powiedzie się 1) jeśli dane obrazu są uszkodzone. 2) jeśli to nie jest obraz. – Niranjan
- 1. Sprawdź, czy ciąg znaków jest adresem URL
- 2. Ruby, sprawdź, czy ciąg znaków jest prawidłowy?
- 3. Sprawdź, czy ciąg znaków interpunkcyjnych jest
- 4. IOS: sprawdź, czy ciąg znaków jest pustym ciągiem
- 5. Sprawdź, czy ciąg znaków jest CAŁKOWITĄ liczbą liter w PHP
- 6. Sprawdź, czy ciąg znaków Pythona jest możliwy do wydrukowania.
- 7. Sprawdź, czy ciąg znaków UTF-8 jest poprawny w Qt
- 8. Sprawdź, czy ciąg znaków jest sformatowany w formacie XML.
- 9. Sprawdź, czy plik jest rzeczywiście obrazem w pliku express/node.js
- 10. Sprawdź, czy ciąg zawiera podłańcuch
- 11. Sprawdź, czy ciąg jest w ArrayList ciągów
- 12. Sprawdź, czy ciąg jest Integer z jQuery
- 13. PHP: Proste, sprawdź, czy ciąg jest hexem?
- 14. Sprawdź, czy ciąg znaków jest równy jednemu z łańcuchów znaków (z wyrażeniem regularnym).
- 15. Ruby Sprawdź warunek, czy ciąg zawiera wiele różnych ciągów znaków?
- 16. Sprawdź, czy ciąg ruby zawiera białe spacje.
- 17. Sprawdź, czy ciąg zawiera tylko znaki ASCII?
- 18. Sprawdzanie, czy ciąg znaków jest pusty
- 19. Funkcja sprawdzania, czy ciąg znaków jest datą
- 20. Jak sprawdzić, czy ciąg znaków jest xml?
- 21. Ustal, czy ciąg znaków jest "pusty".
- 22. Sprawdź, czy ciąg zawiera inny ciąg
- 23. Sprawdź, czy ciąg zawiera określony ciąg przy użyciu tablicy
- 24. Sprawdź, czy ciąg zawiera datę, czy nie.
- 25. Skompiluj czas sprawdź, czy ciąg znaków do wyliczenia mapy jest kompletny
- 26. Sprawdź, czy ciąg znaków jest alfabetyczny i nie zawiera określonych słów.
- 27. Sprawdź, czy ciąg znaków jest pusty w skrypcie akcji, podobnie do String.Empty w .net
- 28. Sprawdź, czy ciąg nie jest równy jednemu z dwóch ciągów znaków
- 29. Sprawdź, czy stdin jest pusty
- 30. Ciąg znaków RODBC jest przycinany
Przez "format string" masz na myśli base64? Jeśli tak, powinieneś zajrzeć do bibliotek magicznych liczb. (Najczęściej spotykane z nich nazywa się po prostu "magią"). – OmnipotentEntity