В своем коде я использовал следующее регулярное выражение:
/^data:image\/jpeg;base64,\s*[A-Za-z0-9\+\/]+=*$/i
Как видите, данные в кодировке Urlen имеют следующие части:
data:^mime^;base64,^data_encoded_as_base64^
Где ^ mime ^ - это мим данных, которые закодированы в формате base64 в поле ^data_encoded_as_base64^
. Имейте в виду, что в упомянутом выше подходе он просто проверяет, что данные «выглядят как линия» как допустимое изображение в формате JPEG с кодировкой Urlen.
Я бы рекомендовал в большинстве случаев , особенно , в случае, если эти данные предоставлены пользователем или предоставлены API для проверки путем декодирования закодированной в base64 части, которая на самом деле является изображением в формате JPEG.
Для краткости ваш код будет выглядеть так:
namespace MyApp\ImageGenerators
class ImageGen
{
public function checkIfImageUrlEncodedJpeg($imageData)
{
return preg_match('/^data:image\/jpeg;base64,\s*[A-Za-z0-9\+\/]+=*$/i',$imageData);
}
}