Intereting Posts
Определите, где была вызвана функция с PHP Как ускорить файл_get_contents? Удалить инструкцию по построению запроса Doctrine Разница между возвращаемым значением выражения PHP и переменной Доктрина: запрос только там, где отношения не существуют? .htaccess переписать: субдомен как GET var и путь как GET var Расширенный код: группировка многомерного массива PHP и вычисление суммы отдельных ключей для каждого элемента массива Как я могу вычислить хэш SHA-256 строки в Android? Переключить сообщения в WordPress с помощью jquery PHP для цикла против foreach с диапазоном Вставка многомерного php-массива в базу данных mysql Используя PHP для отправки электронной почты, измените FROM, чтобы не было моего имени сервера PHP PDO против стандартного теста производительности производительности mysqli Ошибка Google map api v3 HTML PHP Отобразить имя пользователя после успешного входа в систему

PHP – сжимает статический файл css с помощью GZIP

поэтому у меня есть файл css, style.css. в том же каталоге у меня есть папка images /. Как я могу создать скрипт, который сжимает style.css, но из другой папки?

Прямо сейчас у меня это:

<?php if(isset($_GET['css'])) $file = array('url' => htmlspecialchars($_GET['css']), 'type' => 'text/css'); if(isset($_GET['js'])) $file = array('url' => htmlspecialchars($_GET['js']), 'type' => 'application/javascript'); if(!isset($file)) exit(); header('Content-type: '.$file['type']); header('Cache-Control: max-age='.(60*60*6).', must-revalidate'); // whitespace+comment removal, in case gzip is off function compress($buffer){ global $file; $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer); $buffer = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), ' ', $buffer); return $buffer; } if(extension_loaded('zlib')) if(substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) ob_start("ob_gzhandler"); else ob_start("compress"); include($file['url']); ob_end_flush(); ?> 

и используйте его примерно так:

 <style type="text/css"> @import "http://mysite.com/lib/c.php?css=../style.css"; </style> 

все в порядке, за исключением того, что путь к изображениям внутри файла css больше не работает. я думаю, что это потому, что (images / bg.jpg) становится (../images/bg.jpg)

могу ли я исправить это, не перекладывая скрипт c.php в тот же каталог, что и таблица стилей?

Если ваш веб-сервер имеет такую ​​функцию, вы можете использовать переписывание URL-адресов, чтобы сохранить порядок вещей.

Пример с mod_rewrite:

 RewriteRule ^images/style\.css$ lib/c.php?css=../style.css 

Тогда вы можете просто:

 @import "http://mysite.com/images/style.css"; 

Я также рекомендую вам второй раз взглянуть на ваш скрипт. Что произойдет, если я загружу этот URL?

 http://mysite.com/lib/c.php?css=.htpasswd