正则表达式检查输入变量是url还是数据:image / png; base64,[duplicate]

This question already has an answer here:

i have this case

$var = 'http://example.com/images/image_1.jpg';
$var_2 = 'data:image/png;base64,BASE64_DATA_HERE';
$var_3 = 'data:image/gif;base64,BASE64_DATA_HERE';

how can i make if condition to check if it is base64 or url, i want to check if it base64 first because if i just checked if it is url else it will be base64 it will be very bad, and take care of this "http://example.com/images/image_1.jpg?var=base64" i want to regex check the first of the var not the whole of it

BASE64_DATA_HERE is just example of the big str of base64 code

and i want a preg_match regex code to extract just the BASE64_DATA_HERE

something like

$var = 'data:image/png;base64,ZXhhbXBsZQ==';
preg_match(regex_here,$var,$matches);
$code = $matches[1];
</div>

I think you are missing something good out here for server side validations. Just check it out.

Valitron

Anyway for checking base64 string the regex is like this.

^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$

Hope it helps !