【问题标题】:Code to determine folder depth "../" in PHP?在PHP中确定文件夹深度“../”的代码?
【发布时间】:2012-01-04 03:40:39
【问题描述】:

提前感谢您将收到的帮助!

我曾经使用我刚开始时编写的代码,因为无法找到符合我要求的 sn-p。 (也许不知道术语)我相信有一个更简单的方法,这就是我问建议的原因。

/编辑/ 将使用此模板的页面临时托管在另一个网站的子目录中,并且我不想使用“/”从页面的根目录开始,因为我想毫不费力地将网站放到不同的托管服务器并向页面添加域名,因此需要更新来自根目录的路径(例如“/temp-dir/site/images/image.jpg”),而使用以前的目录(例如“. ./../../images/image.jpg") 将在移动时从现有站点和新位置工作。 /结束编辑/

我想要实现的是使用以下方法在标题模板中的文件名之前应用适当数量的“../”:

<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 = "../../../../"

  }
}

我仍在学习编写代码,如果有任何帮助,我将不胜感激。再次感谢!

【问题讨论】:

  • 使用虚拟根路径不是更容易吗?例如,如果所有内容都在/templates/headers/ 下(例如/templates/headers/my_first_header.php),只需使用它作为前缀。
  • 查看更新后的段落,此站点暂时托管为现有域的子文件夹,我希望最终将其移动到自己的托管服务器,而无需更新路径。

标签: php directory templating


【解决方案1】:
$prev = str_repeat('../', $pDepth); 

【讨论】:

  • 很棒的,最少的编码,它可以满足我的需要!谢谢!
  • 不知道 str_repeat,这是一个很方便的功能!
【解决方案2】:

要在 PHP 中连接字符串,请使用 . 运算符。 试试这个:

if($pDepth == 4){

  $i = 0;

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

  }
}

【讨论】:

  • 感谢您理解我想要做的事情,正如明确说明的那样。我会试试这个,看看它是否是我需要的!
  • 这适用于我正在寻找的东西。 kingcrunch 发布了一个更轻的代码$prev = str_repeat('../', $pDepth);,这也是我一直在寻找的。再次感谢你明白我在问什么!
【解决方案3】:
$pDepth = $pDepth . "../";

应该可以正常工作。

【讨论】:

  • 虽然如果代码是用于 PHP 的,它需要是: $pDepth = $pDepth 。 “../”;或者你可以简单地: $pDepth .= "../";
  • 是的,我在发帖后就注意到了 :) 猜猜我仍然处于 C# 模式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-10
  • 2021-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-01
  • 2013-12-27
相关资源
最近更新 更多