Php 如何使用正则表达式从文本中删除数据uri?

Php 如何使用正则表达式从文本中删除数据uri?,php,regex,Php,Regex,使用正则表达式从文本块中删除数据URI的好方法是什么?我的应用程序必须从电子邮件正文中删除它们,因为AmazonSES(简单电子邮件服务)拒绝任何带有数据URI的电子邮件。出于安全目的,还应将其移除 示例数据URI: data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

使用正则表达式从文本块中删除数据URI的好方法是什么?我的应用程序必须从电子邮件正文中删除它们,因为AmazonSES(简单电子邮件服务)拒绝任何带有数据URI的电子邮件。出于安全目的,还应将其移除

示例数据URI:

data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7
它可以用引号括起来,如HTML中所示:

<img src="data:image/gif;base64,R0lGODlhEAAQA...." />

这应该可以做到:

$regex = '~data:[^;]+;[A-Za-z0-9]+,[^")\'\s]+~';
$body = preg_replace($regex, '', $body);
你可能会发现(以及评论中链接的相关问题)很有帮助。当然
$regex = '~data:[^;]+;[A-Za-z0-9]+,[^")\'\s]+~';
$body = preg_replace($regex, '', $body);