正则表达式检查输入的varabile是url还是data:image / png; base64,

时间:2016-05-13 10:09:56

标签: php regex

我有这个案子

$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];

1 个答案:

答案 0 :(得分:1)

我认为你遗漏了一些好的服务器端验证。看看吧。

<强> Valitron

无论如何要检查base64字符串,正则表达式是这样的。

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

希望它有所帮助!