寻找一些基于正则表达式的帮助!已搜索过该网站,但未找到任何适用于我的案例的解决方案。
我有一个向用户显示的表单,其中一个文本区域是屏幕截图的粘贴区域。目前,此屏幕截图数据已输入数据库,但由于这开始使数据库变得非常大,我决定为每个粘贴的屏幕截图创建一个单独的图像,因为这些图像占用的空间比数据库中占用的空间少。 / p>
我遇到的问题是从屏幕截图中剥离img src标签等,并成功将数据保存到可以正确打开的图像文件中。
粘贴的屏幕截图数据将插入数据库,如下所示:
<img src="data:image/png;base64,_BASE_64_DATA_HERE"><br>
在发布此数据时,如何删除不必要的项目并保留base64数据,创建已保存的PNG图像?
目前我有这个,这对我来说不太合适,只是创建一个无法打开的图像:
list($type, $data) = explode(';', $data);
list(, $data) = explode(',', $data);
$data = base64_decode($screenshot);
$data = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $screenshot));
file_put_contents('screenshots/screens.png', $data);
$screenshot
是粘贴的数据。
答案 0 :(得分:1)
我建议删除字符串锚点的^
开头,并使用preg_match
使用\K
截断所有将使用{{1}捕获的图像Base64数据之前的所有内容} pattern - 除[^"<]*
和"
以外的0个或多个字符(可能甚至可以缩减为<
):
[^"]*
请参阅IDEONE demo