Код для определения глубины папки "../" в PHP? - PullRequest
1 голос
/ 22 ноября 2011

Заранее спасибо за помощь, которая будет получена!

Раньше я использовал код, созданный при первом запуске, из-за того, что не смог найти фрагмент, который выполняет то, что я хочу. (Может быть, не зная терминологию) Я уверен, что есть более простой способ, поэтому я прошу совета.

/ EDIT / Страницы, которые будут использовать этот шаблон, временно размещаются в подкаталоге другого веб-сайта, и использование «/» для начала в корне страницы - это не вариант, с которым я хочу перейти, так как хочу без усилий отбросить веб-сайт на другой сервер хостинга и добавьте доменное имя к страницам, так что необходимо будет обновить путь от root (например, "/temp-dir/site/images/image.jpg"), тогда как, используя предыдущий каталог (например, ". ./../../images/image.jpg ") будет работать с существующего сайта и нового местоположения при перемещении. / EndEdit /

То, чего я пытаюсь добиться, - это применить правильное количество «../» перед именами файлов в шаблоне заголовка с помощью метода, подобного:

<link href="<?php if(isset($pDepth)){ echo $prev; }?>style.css" />

Где $ prev будет соответствовать предыдущему коду каталога в диапазоне от "../" до "../../../../" в зависимости от переменной $ pDepth на каждой веб-странице. Например:

if($pDepth == 3){the output of $prev will equal "../../../"}

Я видел, где вывод может изменяться с помощью ++, но вы не можете добавлять строки, не так ли? Я думаю что-то вроде:

if($pDepth == 4){

  $i = 0;

  while($i != $pDepth){

    // help needed here
    // add "../" until $prev = "../../../../"

  }
}

Я все еще учусь писать код и буду признателен за любую помощь. Еще раз спасибо!

Ответы [ 3 ]

4 голосов
/ 22 ноября 2011
$prev = str_repeat('../', $pDepth); 
1 голос
/ 22 ноября 2011

Чтобы объединить строки в PHP, вы используете оператор ..Попробуйте это:

if($pDepth == 4){

  $i = 0;

  while($i != $pDepth){
    $prev .= '../';
    $i++;

  }
}
1 голос
/ 22 ноября 2011
$pDepth = $pDepth . "../";

Должно работать нормально.

...