test inlining

This commit is contained in:
Bruno Rybársky 2024-02-04 10:32:08 +01:00
parent 40eee27fbb
commit 67f07debea

@ -12,14 +12,30 @@ function inlineLocalStylesFromHref($inputString) {
// Get the content of the local CSS file
$cssContent = file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/' . $href);
// Create an inline style tag with the CSS content
// Replace url() declarations in the CSS content with inline data
$cssContent = preg_replace_callback('/url\(["\']?(\/.*?)["\']?\)/i', function($urlMatch) {
// Extract the URL value
$url = $urlMatch[1];
// Get the content of the external file specified in the url()
$fileContent = file_get_contents($_SERVER['DOCUMENT_ROOT'] . $url);
// Base64 encode the content for inline use
$base64Content = base64_encode($fileContent);
// Create the inline data URI
$dataUri = 'url("data:image/' . pathinfo($url, PATHINFO_EXTENSION) . ';base64,' . $base64Content . '")';
return $dataUri;
}, $cssContent);
// Create an inline style tag with the modified CSS content
return "<style>\n{$cssContent}\n</style>";
}, $inputString);
return $outputString;
}
function inlineScriptFromSrc($inputString) {
// Define the regular expression pattern to match <script> tags with src attribute
$pattern = '/<script.*?src=["\']\/(.*?)["\'].*?>\s*<\/script>/i';