PHP включает заявление - PullRequest
       1

PHP включает заявление

1 голос
/ 28 июля 2010

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

 $root = '../';


 function died($error) 
 {
  include '../includes/header.php';
  echo "We are very sorry, but there were error(s) found with the form your submitted. ";
  echo "These errors appear below.<br /><br />";
  echo $error."<br /><br />";
  echo "Please go back and fix these errors.<br /><br />";
  include '../includes/footer.php';
  die();
 }

Я установил переменную $ root в "../", а затем вот соответствующая часть header.php:

<link href="<?php echo $root;?>styles/styles.css" rel="stylesheet" type="text/css" />

Я бы подумал, что он вставил бы в "../" перед стилями, но ничего не ставил. Почему это не работает?

Спасибо!

Ответы [ 4 ]

1 голос
/ 28 июля 2010

$root не входит в область действия функции (я предполагаю ..) добавьте global $root; в начало функции, и она должна работать.

$root = '../';

function whatever() {
  global $root;

  echo "<link rel=stylesheet type=text/css href=\"" . $root . "something.css . "\">";
}
0 голосов
/ 28 июля 2010

Для ссылок на файлы, подобные этому, вам просто нужно начать путь с косой черты, и путь будет относительно вашего корневого каталога ...

<link href="/styles/styles.css" rel="stylesheet" type="text/css" />
0 голосов
/ 28 июля 2010

В этой ситуации я предлагаю использовать $ root = "FULL path";

Так, например ... если ваш веб-root находится в "/ var / www / html /" и вы работаетев проекте давайте назовем его sampleProject, который находится в "/var/www/html/sampleProject".

Set $ ​​root =" / sampleProject /; и таким образом, когда вы используете такие вещи, как styles / styles.css"/> вы в конечном итоге с тем, что вы хотите.

В отличие от других ответов это делает ваш код более переносимым, по моему мнению.Например, если вы переместите свой сайт "sampleProject" в / var / www / html / dir1 / dir2 / dir3 / sampleProject /, все, что вам нужно, это изменить $ root = "/ dir1 / dir2 / dir3 / sampleProject /", и онвсе еще работают.Принимая во внимание, что если вы используете явный полный путь, как некоторые предполагают, вам придется менять его каждый раз, когда вы перемещаете свой сайт.

0 голосов
/ 28 июля 2010

Вы можете сделать путь к вашему файлу CSS абсолютным:

<link href="/styles/styles.css" rel="stylesheet" type="text/css" />

Префикс URL перед косой чертой (/) сделает URL относительным к корню вашего сайта. Приведенный выше пример будет ссылаться на что-то вроде http://example.com/styles/styles.css. Таким образом, вы можете поместить все свои CSS-файлы в папку в корне вашего сайта, и вам не придется беспокоиться о пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...