开发者

What's the best way to get the Directory of a URL using php?

Im trying to set active classes in a nav using php. Now I need to set it by directory rather than complete URL as I have a main landing page for each directory with sub navigation for the other pages within the directory. I was going to use the following but this returns the full url.

function curPageURL() {
$pageURL = 'http';
    if ($_SERVER["HTTPS"] == "on") {$pageURL .开发者_JS百科= "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"';
} }

Then I call activeLink() in a nav item like this:

<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>

Your suggestions on how to modify this to return the directory instead would be much appreciated.


If you want to extract the directory name from an URL you can use parse_url and dirname as:

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


You could get the full URL and then explode it to get down to your directory, like so:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜