- Member | 5
Hi, today I came across a possible bug in \Nette\Mail\Message. It is related to a regex that takes care of embedding images directly into a message. Regex does not work in one particular case that I (and many e-mail clients and browsers) consider valid such as:
<div style="background: url(image.png)"></div> <!-- no apostrophes around image.png -->
This works as expected (image.png is embedded):
<div style="background: url('image.png')"></div> <!-- apostrophes around image.png -->
I believe the regex should also match relative image path in url without apostrophes.
Is this a bug or a desired behaviour that forces users to be strict about their CSS markup? Do you guys know any low-level workaround? I do not have direct control over the source markup (although preprocessing is possible, it is not desirable). Thank you.
Regex I am talking about:
<?php // https://api.nette.org/nette/2.1/source-Mail.Message.php.html#241 $matches = Strings::matchAll( $html, '#(src\s*=\s*|background\s*=\s*|url\()(["\'])(?![a-z]+:|[/\\#])(.+?)\\2#i', PREG_OFFSET_CAPTURE ); ?>
Testing ground: http://regex101.com/r/nY7iR9