Исходный код «ie-data-url-2.phps», приложенный к заметке.

Исходный код «ie-data-url-2.phps», приложенный к заметке.

<?
bolk_data_uri_header();

echo '<p>Тест поддержки графики mhtml (для IE) и data URL (для остальных браузеров)</p>';

bolk_data_uri('file.gif');

//bolk_data_uri('ourpng.png', 'border: 2px dotted red');


function bolk_data_uri_header()
{
	echo "<!--\n"
		."Content-Type: multipart/related; boundary=\"=_NextPart_01C6A9B1.539AB070\"\n\n"
		."-->\n\n";
}

function bolk_data_uri($file, $style = '')
{
	if (!( file_exists($file) && ($data = @getimagesize($file)) )) return false;

	$name = md5($file);

	if ($style <> '') $style = ' style="'.htmlspecialchars($style).'"';

	echo "<!--\n"
		."--=_NextPart_01C6A9B1.539AB070\n"
		."Content-Location: {$name}\n"
		."Content-Transfer-Encoding: base64\n"
		."Content-Type: {$data['mime']}; --><![if !IE]>\n"
		."<img src='data:{$data['mime']};base64,\n\n";

	echo base64_encode(file_get_contents($file));

	echo "' {$data[3]}{$style} /><![endif]>"
		."<!--[if IE]><img src='mhtml:http://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}!{$name}' {$data[3]}{$style}/>\n\n"
		."<!--\n"
		."--=_NextPart_01C6A9B1.539AB070--><![endif]-->";

	return true;
}
?>