如何获得URL相对“深度”?

时间:2011-02-16 00:47:48

标签: php url relative absolute

在PHP中,我如何根据我所在的位置获取URL相对指标?例子:

Location                 Return

example.com              ./
example.com/sub          ../
example.com/sub/sub      ../../

...

3 个答案:

答案 0 :(得分:2)

考虑上面的例子:

$url = 'example.com/sub/sub/';
$parts = explode('/', $url);
$parts = array_filter($parts, 'strlen');
$path = count($parts) == 1 ? './' : str_repeat('../', count($parts)-1);

此代码忽略空部分和尾部斜杠(例如:example.com//sub/)。

答案 1 :(得分:1)

不仅仅计算url中的斜杠数量就足够了。您可以使用preg_match_all

<?php
preg_match_all('/\//',$url,$matches);
echo count($matches);
?>

(未经测试的代码)

答案 2 :(得分:1)

嗯,快速猜测:

function getDeepness($url){
  $lvls = substr_count($url, '/');

  if(!$lvls){
    return "./";
  }

  return str_repeat("../", $lvls);
}