Как правильно встроить PHP-код в мои файлы CSS и JavaScript?


Как и все остальные, я храню информацию о отображении моего сайта в файлах таблиц стилей. И я хочу создать серверную cms, чтобы пользователи могли, например, изменять

цвет, размер и т.д.

Итак, как правильно встроить PHP-код в мои CSS-файлы?

Добавляет этот заголовок:

<?php header("Content-type: text/css"); ?>

И изменение расширения файла по ссылке:

<link rel="stylesheet" type="text/css" media="screen" href="style.php">

Действителен?

А как насчет JavaScript? В данный момент я повторяю теги <script type="text/javascript">, но, возможно, есть также способ встроить все в файлы .js?

Спасибо!

Author: Paul D. Waite, 2010-11-24

3 answers

Да, это совершенно справедливо.

То же самое можно сделать и для Javascript, отправив

<?php header("Content-type: application/javascript"); ?>

Однако это не оптимально с точки зрения производительности, потому что для обслуживания этих ресурсов необходимо запустить процесс PHP.

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

Помните, что обычно существуют нет заголовков кэширования, отправленных для PHP-файлов. Вам придется позаботиться об отправке правильных заголовков внутри вашего PHP-скрипта! Спасибо @oracle сертифицированному специалисту за напоминание.

 9
Author: Pekka 웃, 2010-11-24 12:31:51

То, что вы делаете, абсолютно справедливо.

Однако, если у вас более крупный сайт с большим количеством посетителей, вам следует позаботиться о том, чтобы просто позволить PHP "создавать" "настоящий" CSS-файл, когда ваш пользователь обновляет свой дизайн, чтобы повысить производительность ваших серверов до более необходимых вещей:

<?php

header("Content-type: text/css");

// Your database magic here to fetch the user-specific designs 

// open the cached css
$cachefile = "cachedCSS/mycss.css";

if (file_exists($cachefile)) {
    // the page has been cached from an earlier request
    // output the contents of the cache file
    include($cachefile); 
    // exit the script, so that the rest isnt executed
    exit;
}

$fp = fopen($cachefile, 'w');
// save the contents of output buffer to the file
fwrite($fp, ob_get_contents());
// close the file
fclose($fp);
// Send the output to the browser
ob_end_flush(); 

Подробнее об этом читайте здесь: http://www.theukwebdesigncompany.com/articles/php-caching.php

 5
Author: Industrial, 2010-11-24 12:25:38

Убедитесь, что вы анализируете php в этих файлах.

В .htaccess :

AddType application/x-httpd-php .php .css .js

Это гарантирует, что любые теги <?php ?> в типах файлов, отличных от .php, будут проанализированы сервером, и код php не будет читаться пользователями.

 0
Author: Greg, 2010-11-24 12:12:54