Я нашел это на веб-сайте,
<?php // First of all send css header header("Content-type: text/css"); // Array of css files $css = array( 'main.css', 'menu.css', 'content.css' ); // Loop the css Array foreach ($css as $css_file) { // Load the content of the css file $css_content = file_get_contents($css_file); // print the css content echo $css_content; } ?>
Добавить CSS на страницу
<link href="css_loader.php" rel="stylesheet" type="text/css" />
Это выглядит очень логично, но когда я применил его к своей странице, он не работал.
возможно ли объединить файлы CSS таким образом?
У вас есть ошибка в коде, вот правильный код:
<?php // First of all send css header header("Content-type: text/css"); // Array of css files $css = array( 'main.css', 'menu.css', 'content.css' ); // Prevent a notice $css_content = ''; // Loop the css Array foreach ($css as $css_file) { // Load the content of the css file $css_content .= file_get_contents($css_file); } // print the css content echo $css_content; ?>
И я надеюсь, что файлы находятся в одной папке. Возможно, вы должны использовать __DIR__
или dirname(__FILE__)
чтобы получить относительный путь к вашим файлам.
Стоуни показал вам свою ошибку …. теперь для более совершенной версии
header('Content-type: text/css'); ob_start("compress"); function compress($buffer) { /* remove comments */ $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer); /* remove tabs, spaces, newlines, etc. */ $buffer = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $buffer); return $buffer; } /* your css files */ include('main.css'); include('menu.css'); include('content.css'); ob_end_flush();
вheader('Content-type: text/css'); ob_start("compress"); function compress($buffer) { /* remove comments */ $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer); /* remove tabs, spaces, newlines, etc. */ $buffer = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $buffer); return $buffer; } /* your css files */ include('main.css'); include('menu.css'); include('content.css'); ob_end_flush();
вheader('Content-type: text/css'); ob_start("compress"); function compress($buffer) { /* remove comments */ $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer); /* remove tabs, spaces, newlines, etc. */ $buffer = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $buffer); return $buffer; } /* your css files */ include('main.css'); include('menu.css'); include('content.css'); ob_end_flush();
вheader('Content-type: text/css'); ob_start("compress"); function compress($buffer) { /* remove comments */ $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer); /* remove tabs, spaces, newlines, etc. */ $buffer = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $buffer); return $buffer; } /* your css files */ include('main.css'); include('menu.css'); include('content.css'); ob_end_flush();
<?php // Array of css files $css = array( 'first.css', 'second.css' ); $mergeCSS = ""; // Loop the css Array foreach ($cssas $css_file) { // Load the content of the css file $mergeCSS.= file_get_contents($css_file); } // Remove comments also applicable in javascript $mergeCSS= preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $mergeCSS); // Remove space after colons $mergeCSS= str_replace(': ', ':', $mergeCSS); // Remove whitespace $mergeCSS= str_replace(array("\n", "\t", ' ', ' ', ' '), '', $mergeCSS); //Generate Etag $genEtag = md5_file($_SERVER['SCRIPT_FILENAME']); // call the browser that support gzip, deflate or none at all, if the browser doest support compression this function will automatically return to FALSE ob_start('ob_gzhandler'); // call the generated etag header("Etag: ".$genEtag); // Same as the cache-control and this is optional header("Pragma: public"); // Enable caching header("Cache-Control: public "); // Expire in one day header('Expires: ' . gmdate('D, d MYH:i:s', time() + 86400 ) . ' GMT'); // Set the correct MIME type, because Apache won't set it for us header("Content-type: text/javascript"); // Set accept-encoding header('Vary: Accept-Encoding'); // Write everything out echo($mergeCSS); ?>
Этот код также совместим для слияния javascript
Я написал этот класс для таких потребностей, он может отображать вывод и сжимать его, позже я могу добавить файл записи конечных результатов, ссылку здесь
эй, вы проверили, добавляет ли ваш сервер несколько строк к вашему коду (например, код аналитики). если это так, вы должны добавить правило в .htaccess, которое останавливает сервер для добавления строк в ваш код. это можно сделать, добавив это в .htaccess – "php_value auto_append_file none" без кавычек, конечно. надеюсь, это поможет