I am currently doing the following to decode base64 images in PHP:
$img = str_replace('data:image/jpeg;base64,', '', $s['image']); $img = str_replace('data:image/png;base64,', '', $s['image']); $img = str_replace('data:image/gif;base64,', '', $s['image']); $img = str_replace('data:image/bmp;base64,', '', $s['image']); $img = str_replace(' ', '+', $img); $data = base64_decode($img);
As you can see above, we accept the four most standard image types (jpeg, png, gif, bmp);
However, some of these images are very large and scanning every 4-5 times with str_replace seems like a terrible waste and terribly inefficient.
Is there a way I could reliably split the data: part of the image of a base64 image line in a single pass? Perhaps finding the first comma in the line?
My apologies if this is a simple problem, PHP is not my forte. Thanks in advance.
gordyr
source share