Problem z kodem do optymalizacji

Odpowiedz Nowy wątek
2018-07-29 14:32

Rejestracja: 2 lata temu

Ostatnio: 1 rok temu

0

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

edytowany 2x, ostatnio: solark, 2018-07-29 15:31

Pozostało 580 znaków

2018-07-30 23:21

Rejestracja: 1 rok temu

Ostatnio: 1 rok temu

0

Bo te atrybuty nie istnieja dla tego Doctype (nie wiem ktorego uzywasz bo nie podales). Uzyj CSSa

Pozostało 580 znaków

2018-07-31 09:38

Rejestracja: 2 lata temu

Ostatnio: 1 rok temu

0

Dziękuję Ali Tuna za odpowiedź
Bardzo mi na tym zależało
Wybacz ale jestem początkujący
Rozumiem że dla tych plików css_cache.php i css.php mam ustawić Doctype na CSS?

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0