2012-04-28 2 views
0

У меня есть эта строка кода CSS здесь ...PHP в CSS фон

background-image:url(upload/<?php echo $array['image']; ?>); 

но Данг вещь не работает, все это я получаю обратно пустой экран, изображение находится в базе данных и также на сервере в правом файле. Не работает PHP с CSS?

Это не CSS файл

Благодаря передовой, J

здесь является полная строка кода ...

<div style="width:100%; position:relative; margin:0 auto; padding-top:80px; height:350px; background-image:url(upload/<?php echo $array['image']; ?>); background-repeat:no-repeat; background-size:100%; text-align:center; padding-bottom:40px;"> 
+0

Думаю, вы можете настроить файл htaccess для запуска php в файле css. И если это на html-странице, тогда вы также сможете настроить php на них. –

+0

@M. Laing: интересно. Но это оставило бы клиента с «статической» css-кешированной версией одного запуска, если только ваша сила не заставит клиента перезагрузить время запуска css. – ChristopheD

+0

можете ли вы просто указать, является ли значение, которое вы печатаете, дорожкой или изображением в кодированном формате? –

ответ

3

Шаг 1:

Я думаю, вы просто пропустили котировки url('something') так должно быть так:

<div style="width:100%; position:relative; margin:0 auto; padding-top:80px; height:350px; background-image:url('upload/<?php echo $array['image']; ?>'); background-repeat:no-repeat; background-size:100%; text-align:center; padding-bottom:40px;"> 

Шаг 2: Если не работает, показывает нам точный результат, а не просто «его не работает», скопируйте часть исходного кода отображаемой страницы, чтобы мы могли убедиться, что значение напечатано правильно, например

Шаг 3: Если это все еще не работает, я понимаю gest вы используете функцию «проверить элемент» некоторых браузеров, чтобы увидеть, что является проблемой. Я могу предложить расширение Firebug для Firefox

+0

Удивительный человек, «url (« что-то ») работал, спасибо. – user979331

+1

Это действительно не имеет значения, если вы не ставите кавычки в правило URL-адреса CSS. – lu1s

+0

Я тоже пробовал это, и ты прав, это не имеет значения. Но это может зависеть 1) от браузера или 2) от url. Я считаю, что некоторые более сложные URL-адреса (без цитирования) могут привести к неправильной интерпретации CSS. – Kyborek

2

Внутри файла CSS? №. (изменить - см. Комментарии): может быть технически осуществимым, но по-прежнему выглядит как план с большим количеством недостатков.

Введенный в вывод, сгенерированный PHP (или другие, например, html-шаблоны): да.

+0

его в html-файле ... – user979331

+0

Нет причин, по которым PHP не мог разобрать CSS-файл, если сервер настроен на разбор .css-файлов или файл CSS имеет расширение .php-файла. – JJJ

+0

Если он находится в html-файле: что генерируется как значение для фонового изображения после загрузки страницы html (источник просмотра)? – ChristopheD

-2

Нет, PHP не работает с CSS, но с использованием шаблонов шаблонов или str_replace или preg_replace вы можете выводить CSS в теге <style> в HTML. Однако это не лучшая идея.

+1

Опять же, говорить, что PHP не работает с CSS, просто неправильно. – JJJ

+0

PHP работает с CSS, если вы делаете это правильно. –

+0

Если вы прочитали вопрос, вы увидите, что CSS-стиль _is_ внутри HTML-кода, а не отдельный .css-файл. – fhugas

0

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

Если вы внедряете CSS в свой html, то это должно быть намного проще. Если это не сработает, вам нужно проверить, действительно ли выходной файл, который служит, является правильным, и если селектор действительно прав. Попробуйте hardcoding свойство background-image, чтобы увидеть, работает ли это.

0

Скорее всего, ваш сервер не использует PHP-интерпретатор для файлов HTML. Измените суффикс вашего html-файла на .php, и он должен работать.

0

Просто создайте свой текущий .css-файл .php (или любой другой PHP, который будет выполняться, .fp гарантированно работает), а затем заставьте сервер объявить его правильным MIME-типом , Расширение фактически не имеет значения.

blah.php (был blah.css)

<?php 
header('Content-type: text/css'); 
?> 
.thing {blah;} 
.other {blah;} 
body { 
    background-image:url(upload/<?php echo $array['image']; ?>); 
} 
0

Если вы хотите иметь динамический "CSS" файл, который вы можете создать файл PHP и обрабатывать переменные.Чтобы сделать его оптимальным, включите header("Content-type: text/css"); перед тем, как бросить что-нибудь, затем введите свои правила css и добавьте переменные.

Теперь вы можете назвать файл как <link rel="stylesheet" type="text/css" href="your_php_file.php">, а также вы можете обрабатывать параметры, как <link rel="stylesheet" type="text/css" href="your_php_file.php?layout=minimal">

Ваш окончательный PHP будет так:

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

    body{ 
      width: 0px; // your coded rules 
      background: url(upload/<?php echo $array['image']; ?> // the dynamic one 
    } 

Это не имеет значения, если вы добавляете или нет котировки путь.