tags with href attribute for CSS files $pattern = '//i'; // Use preg_replace_callback to replace matched link tags with inline styles $outputString = preg_replace_callback($pattern, function($match) { // Extract the href attribute value $href = isset($match[1]) ? $match[1] : $match[2]; $fname = $_SERVER['DOCUMENT_ROOT'] . '/' . $href; echo "from $fname"; // Get the content of the local CSS file $cssContent = file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/' . $href); // 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:application/octet-stream;base64,' . $base64Content . '")'; return $dataUri; }, $cssContent); // Create an inline style tag with the modified CSS content return ""; }, $inputString); return $outputString; } function inlineScriptFromSrc($inputString) { // Define the regular expression pattern to match "; }, $inputString); return $outputString; }