Witam Wszystkich
Mam problem z kodem do łączenia plików css:
Siedzę już nad tym kilka dni bez rezultatu :(
poniższe pliki wymagają wpisania w nagłówku strony następującego kodu:
<link rel="stylesheet" type="text/css" href="css.php" />
plik : css_cache.php
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Tworzenie pliku cache z pobranych plików css
* @param string $cache_file_name Nazwa pliku cache
*/
function generateCache($cache_file_name){
$dir = dirname( __FILE__ ) . '/css/';
if (is_dir($dir)){
if ($handle = opendir($dir)) {
$css_content = '/* Utworzono :'.date('Y-m-d H:i:s').' */';
while (false !== ($file = readdir($handle))) {
if (strtolower(substr(strrchr($file,"."),1)) == 'css'){
$css_content .= "\n\n".'/* CSS z pliku: '.$file.' */'."\n".preg_replace('/\s+/', ' ', file_get_contents($file));
}
}
closedir($handle);
file_put_contents($cache_file_name,$css_content);
}
}
}
/**
* Funkcja pobierająca plik cache
* @param string $cache_file_name Nazwa pliku
* @param int $cache_time Czas ważności w sekundach
* @return unknown_type
*/
function getCache($cache_file_name,$cache_time){
if (file_exists($cache_file_name)){
if ($cache_time){ // jest podany termin waznosci cache
if (filemtime($cache_file_name ) < (time() - $cache_time)) { //cache nieaktualny, pobranie od nowa i utworzenie
generateCache($cache_file_name);
}
}
}else{// brak cache - utworznie
generateCache($cache_file_name);
}
return file_get_contents($cache_file_name);
}
?>
oraz plik : css.php
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
if(array_key_exists("HTTP_IF_MODIFIED_SINCE",$_SERVER)){
$if_modified_since = strtotime(preg_replace('/;.*$/','',$_SERVER["HTTP_IF_MODIFIED_SINCE"]));
if($if_modified_since >= strtotime(filemtime($cache_file_name))){
header("HTTP/1.0 304 Not Modified");
exit();
}
}
/**
* Nazwa pliku cache
* @var string
*/
$cache_file_name = 'cache_style.css';
/**
* Czas ważności cache w sekundach
* 0 - cache bez terminu ważności
* @var unknown_type
*/
$cache_time = 0;
require_once 'css_cache.php';
header("Content-type: text/css; charset: UTF-8");
header("Pragma: public");
header("Cache-Control: public");
header('Expires: '.gmdate('D, d M Y H:i:s', strtotime('+1 year').' GMT'));
header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($cache_file_name)).' GMT');
ob_start("ob_gzhandler");
echo getCache($cache_file_name,$cache_time);
ob_end_flush();
?>
Ogólnie kod działa bo sprawdzałem na serwerze lokalnym - działa ale wtedy gdy jako ścieżkę wpisuję
$dir = '.';
a pliki css znajdują się w katalogu tam gdzie powyższe
A może ścieżka jest dobrze tylko gdzie indziej jest błąd?
A moż przez to że katalog css jest chyba tylko do odczytu?
Poza tym nie wiem gdzie te pliki umieścić na stronie na prawdziwym serwerze (używam WordPressa)
Ręce mi już opadają dlatego proszę o pomoc