Можно ли в css использовать php

запуск PHP в файле CSS

Я хочу запустить PHP в файле CSS. Причина этого заключается в том, что я хочу динамически задавать URL-адрес фонового изображения в зависимости от того, находится ли сайт в разработке или производстве. т.е.

<?php er («Content-type: text/css; charset=utf-8»); $baseUrl = $this->basePath(); if (defined(‘RUNNING_FROM_ROOT’)) { $baseUrl .= ‘/public’; } ?> .readelidersOne { background: url(«<?php echo $baseUrl ?>/Images/backGroundImages/side_wallet.png») 0 0 transparent ; }

выше если да в основном определяет, должен ли использоваться полный BASE URL или только / public

я знаю из этот ответ что решение состоит в том, чтобы создать файл css с окончанием php и затем поместить код ниже в верхней части файла:

Заголовок («Content-type: text / css; charset = utf-8»);

Я попробовал это, и он действительно создает файл CSS с тегами PHP (css.php).

Однако, как только я помещаю код php в файл, он перестает работать.

т.е.

$baseUrl = $this->basePath();

-1

Решение

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

<?php $path = ‘https://www.example.com/image.jpg’; ?> <style> .className{ background: url(<?php echo $path; ?>); } </style>

ИЛИ, если вы хотите поместить его в заголовочный файл включения, в основном в одном месте для всех файлов, добавьте оператор if else и добавьте переменную $ page поверх вашей страницы

<?php // define this before including the file contaiting $path $page = ‘index’; ?> <?php if($page == ‘index’){ $path = ‘https://www.example.com/image01.jpg’; }elseif($page == ‘us’){ $path = ‘https://www.example.com/image02.jpg’; } ?>

4

Другие решения

CSS-файлы должны быть статичными и кэшироваться. Вы не должны динамически генерировать CSS-файлы через PHP.

  • Если необходимо внести изменения один раз между производственной и промежуточной средой, тогда только делайте это один раз на этапе развертывания (при загрузке в соответствующую среду). Либо используйте какой-нибудь сценарий компоновки / развертывания, CSS-препроцессор или что-то еще, что подходит лучше всего. Там нет необходимости делать это на каждый запрос через PHP.
  • Если вы хотите настроить внешний вид страницы на основе динамических значений, поместите <style> раздел на вашей HTML-странице, которую вы все равно генерируете через PHP (или применяете style=»..» атрибуты для затронутых элементов напрямую); Вы можете динамически манипулировать этим через PHP, сколько хотите.
Читайте также:  Можно ли использовать бонусы спасибо на заправке

2

если этот файл не включен где-то внутри определения класса, $this-> вне контекста. Вам придется придумать другой способ, чтобы найти правильный путь.

Использование:

$Livedomain = «mysite.com»; $Devdomain = «localhost/mydomain»; $baseUrl = strpos($Livedomain, $_SERVER[‘PHP_SELF’]) === false ? $Devdomain : $Livedomain;

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

$seconds_to_cache = (60 * 60 * 24 * 90); // 3 months-ish $ts = gm(«D, d M Y H:i:s», () + $seconds_to_cache) . » GMT»; er(«Expires: $ts»); er(«Pragma: cache»); er(«Cache-Control: max-age=$seconds_to_cache»);

1

Это всего лишь идея …. Вам не проще внедрить в html только фоновое изображение? Пример:

// Somewhere in your html oh <?php $image = ‘https://www.tld.com/yourImage.jpg’; ?> <div id=»myId» style=»background-image:<? echo $image; ?>»></div>

Тогда вам не нужно ничего делать в сущности вашего CSS, и это сэкономит вам массу времени !!!! ????

Вы на правильном пути — чтобы запустить PHP-код в файле CSS, вы должны сделать *.php файл и отправьте через него заголовок CSS, например, так:

myStyles.php

убедитесь, что вы не ставите PHP-код или пробелы перед er()

<?php er(«Content-type: text/css; charset=utf-8»); ?> <?php $wht = ‘#ffffff’; $blk = ‘#000000’; // This line probably isn’t working because $this is not defined $baseUrl = $this->basePath(); ?> div#id { background-color: <?php echo $blk; ?>; color: <?php echo $wht; ?>; background-image: url(‘<? echo $baseUrl; ?>/images/myimage.jpg’); }

С учетом вышесказанного, вы пытались играть с препроцессорами, такими как LESS или SASS, которые можно использовать для выполнения того, что, как я полагаю, является подавляющим большинством того, чего вы пытаетесь достичь?

Источник

Поддержка CSS3 с помощью PHP

  • Главная»
  • Уроки»
  • PHP»
  • Поддержка CSS3 с помощью PHP
  • Метки урока:
  • php
  • css
  • оптимизация
  • кодинг

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

Читайте также:  Можно ли использовать блютуз адаптер от мыши

Можно ли в css использовать php

Часть вопросов поддержки может быть снята, если генерировать CSS с помощью PHP для сайта, и использовать возможности PHP для абстрагирования нескольких строк CSS3 в одну единственную строку.

PHP для генерации CSS

Использование PHP для генерации CSS не является чем-то новым.

В вашем HTML должна присутствовать следующая строка, чтобы можно было использовать предложенный метод:

< rel=»stylesheet» type=»text/css» =»all» href=»styles/style.php» />

В данной строке только одно отличие от обычной ссылки на CSS файл — вместо указания файла с расширением «.css», мы вызываем PHP файл. В начало вашего PHP файла нужно вставить следующие строки:

<?php er(‘Content-type: text/css’); ?>

Это указание для PHP файла, что его будут пересылать клиенту как CSS. Очевидным преимуществом такого подхода вместо использования статического CSS файла является то, что генерируемый PHP файл CSS позволяет использовать преимущества функциональности PHP (что, конечно, означает одинаковое использование для различных клиентских частей).

Функция для генерации CSS3

Напишем простую функцию для построения секции кода CSS3, которая будет содержать все основные префиксы свойств CSS3. Теперь, если возникнет необходимость вставить CSS3, нужно будет только вызвать данную функции в соответствующем месте кода. Функция использует два аргумента:: (1) стандартное имя свойства, и (2) значение (включая единицы измерения).

Вот код функции:

css3_props($property, $value) { $css3 = «-webkit-«.$property.»: «.$value.»;n» .» -moz-«.$property.»: «.$value.»;n» .» -o-«.$property.»: «.$value.»;n» .» -khtml-«.$property.»: «.$value.»;n» .» «.$property.»: «.$value.»;n»; echo $css3; }

Данная функция должна быть размещена в самом верху вашего PHP/CSS файла (или подключаться как внешний файл), а в коде CSS можно будет использовать ее вызов следующим образом:

#box-shadow { width: 200px; height: 200px; padding: 20px; <?php css3_props(«box-shadow», «#ccc 5px 5px 10px»); ?> }

Первые три строчки (width, height, padding) приведены для примера. Ключевая строка — последняя, в которой производится вызов функции css3_props.

Функция css3_props строит строку в переменной $css3. Строка имеет правильный синтаксис, чтобы свойство CSS выглядело обычным после генерации. В данную строку включаются префиксы, соответствующие браузерам. Аргументы, которые передаются функции должны соответствовать свойствам CSS, которые будут строиться. Последняя строка выводит окончательное сформированное значение.

Читайте также:  Можно ли использовать материнский капитал на ипотеку оформленную на мужа

Преимущества данного метода

  • Легко поддерживать, так как нужно будет менять значение только в одном месте
  • Устанавливает все специфические свойства в нужном порядке для всех свойств CSS3 в вашем CSS файле
  • Устанавливает стандартное свойство последним, что является хорошей практикой применения CSS
  • Устанавливает весь набор соответствующих свойств CSS вместе
  • Если нужно будет добавить еще какой-нибудь префикс, то нужно будет изменить лишь только код функции

Очевидные недостатки

  • Нужно знать хотя бы основы PHP (впрочем, можно воспользоваться простым копированием кода из данного урока)
  • Для использования и проверки функции нужен сервер, поддерживающий PHP
  • Если вы кодируете на PHP, то ваш текстовый редактор может не поддерживать подсказки CSS и функции автозавершения свойств
  • Такая функция работает только с простыми свойствами CSS3, которые имеют пару свойства/значения, как border-radius или text-shadow (то есть не работает с градиентами, анимацией, множественными фонами и так далее)
  • Не все префиксы необходимы для каждого свойства CSS3, так что много лишнего будет добавлено в ваш код

5 последних уроков рубрики «PHP»

  • Фильтрация данных с помощью zend-filter

    Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.

  • Контекстное экранирование с помощью zend-escaper

    Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

  • Подключение Zend модулей к Expressive

    Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

  • Совет: отправка информации в Google Analytics через API

    Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

  • Подборка PHP песочниц

    Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Источник