2014-04-21 32 views
0

正則表達式中刪除文本塊中的數據URI有什麼好方法?我的應用程序必須將它們從電子郵件正文文本中刪除,因爲Amazon SES(簡單電子郵件服務)拒絕任何帶有數據URI的電子郵件。出於安全目的,它們也應該被移除。如何使用正則表達式從文本中刪除數據uri?

實施例數據URI:

data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7 

它可以用引號括如HTML包圍:

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

,或者它可以是在一個CSS背景:

background: url(data:image/gif;base64,R0lGODlhEAAQA....); 
+1

你可能會發現[這個問題](http://stackoverflow.com/questions/8106038/regex-for-detecting-base64-encoded-strings)(以及相關的問題鏈接在評論中)有幫助。當然[preg_replace](http://us2.php.net/preg_replace) –

回答

0

這應該訣竅:

$regex = '~data:[^;]+;[A-Za-z0-9]+,[^")\'\s]+~'; 
$body = preg_replace($regex, '', $body); 
相關問題