Php 删除img src标记并保留base64数据(文本编辑器中的屏幕截图)

Php 删除img src标记并保留base64数据(文本编辑器中的屏幕截图),php,image,base64,Php,Image,Base64,我目前正在将屏幕截图(通过文本编辑器)插入数据库,因此插入数据库的字符串如下所示: <img src="data:image/png;base64, [BASE64 STRING]" alt=""> 等 其中$screenshot是从数据库获取整个字符串的查询 最终,我希望能够在弹出窗口或类似窗口中显示图像,为此,我需要原始base64图像。但是,当将屏幕截图插入文本区域(带有文本编辑器)时,标签已经包含在内,因此会传递给db 任何帮助或指导都将不胜感激 Use,这个正则表达式将获

我目前正在将屏幕截图(通过文本编辑器)插入数据库,因此插入数据库的字符串如下所示:

<img src="data:image/png;base64, [BASE64 STRING]" alt="">

其中$screenshot是从数据库获取整个字符串的查询

最终,我希望能够在弹出窗口或类似窗口中显示图像,为此,我需要原始base64图像。但是,当将屏幕截图插入文本区域(带有文本编辑器)时,标签已经包含在内,因此会传递给db

任何帮助或指导都将不胜感激

Use,这个正则表达式将获取src

$img = '<img src="data:data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7" alt="">';
preg_match('/< *img[^>]*src *= *["\']?([^"\']*)/i', $img, $matches);
var_dump($matches);

array(2) {
  [0]=>
  string(325) "<img src="data:data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7"
  [1]=>
  string(315) "data:data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7"
}
$img='';
预匹配('/<*img[^>]*src*=*[“\']?([^“\']*)/i',$img,$matches);
var_dump($matches);
阵列(2){
[0]=>
字符串(325)”
字符串(315)“数据:数据:image/gif;base64,R0lgodlheaaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaach5bacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca
}

当我尝试使用数据库中的图像时,似乎返回了数组(0){}。它们的结构与您给出的示例相似,因此不确定原因。数据库中的一些图像字符串是什么?我刚刚尝试了一些不同的屏幕截图,如果我使用全屏截图(F11),似乎会返回数组(0){}然后插入数据,你的preg_匹配就可以了,但是如果我用任务/控制条等全屏截图并插入该截图,它会返回如上所述的数组0。一个非常奇怪的错误,我想知道是什么导致了它?
$img = '<img src="data:data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7" alt="">';
preg_match('/< *img[^>]*src *= *["\']?([^"\']*)/i', $img, $matches);
var_dump($matches);

array(2) {
  [0]=>
  string(325) "<img src="data:data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7"
  [1]=>
  string(315) "data:data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7"
}