我有这个案子
$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';
如何使if
条件检查它是否为base64或url,我想先检查它是否为base64,因为如果我只是检查它是否是url否则它将是base64它会非常糟糕,并照顾这个"http://example.com/images/image_1.jpg?var=base64"
我想要正则表达式检查var的第一个而不是整个
BASE64_DATA_HERE只是base64代码的一大块示例
我希望preg_match正则表达式代码只提取BASE64_DATA_HERE
类似
$var = 'data:image/png;base64,ZXhhbXBsZQ==';
preg_match(regex_here,$var,$matches);
$code = $matches[1];
答案 0 :(得分:1)
我认为你遗漏了一些好的服务器端验证。看看吧。
<强> Valitron 强>
无论如何要检查base64字符串,正则表达式是这样的。
^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
希望它有所帮助!