使用php获取URL目录的最佳方法是什么?

时间:2010-09-24 16:38:19

标签: php

我试图使用php在nav中设置活动类。现在我需要通过目录而不是完整的URL来设置它,因为我有一个每个目录的主登陆页面,其中包含目录中其他页面的子导航。我打算使用以下内容,但这将返回完整的URL。

function curPageURL() {
$pageURL = 'http';
    if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
    if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}

return $pageURL;}

 function activeLink($pageID) {
if ( $pageID == curPageURL() ) {
    echo 'class="active"';
} }

然后我在这样的导航项中调用activeLink():

<li class="projectchild padding1"><a href="http://www.strangeleaves.com/nexus/index.php" <?php activelink('http://www.strangeleaves.com/nexus/index.php'); ?> >nexus</a></li>

您对如何修改此设置以返回目录的建议将非常感激。

2 个答案:

答案 0 :(得分:1)

如果您想从directory name中提取URL,可以使用parse_urldirname作为:

$url = 'http://www.strangeleaves.com/nexus/index.php';
$arr = parse_url($url);
$path = dirname($arr['path']); // $path is now /nexus

答案 1 :(得分:0)

您可以获取完整的URL,然后将其展开以进入您的目录,如下所示:

$currentFile = $_SERVER["PHP_SELF"];
$parts = Explode('/', $currentFile);
$thisDir = $parts[count($parts) - 2];