php网页数组 - 希望能够通过NEXT - PREV链接循环浏览它们

时间:2012-06-07 00:07:35

标签: php arrays navigation

根据Hunter F的回答,我的问题的解决方案几乎已经完成。 只需要几个调整。

我稍微修改了代码,并在php array help required - if current array item = 'last or first item' then 'do something'

处提交了一个新问题

原始信息:

我希望能够创建一个带有PREV和NEXT链接的简单导航栏,我可以使用它来循环浏览页面列表。导航栏将在所有要循环的页面中包含php。

所以我想起点是创建一个需要使用PREV NEXT链接循环的页面数组。

比如......

$projectlist = array(
        'http://domain.com/monkey/',
        'http://domain.com/tiger/',
        'http://domain.com/banana/',
        'http://domain.com/parrot/',
        'http://domain.com/aeroplane/',
);

我想选择重新订购,添加或删除链接。因此,拥有一个这样的自包含主数组对我来说似乎是一个合乎逻辑的选择,因为我只需要为将来的任何添加更新这个列表。

链接到的每个目录都有自己的index.php文件,所以我从链接末尾离开了index.php部分,因为它不需要......或者是它?

......关于如何从这里继续,我感到非常难过。

我想我需要确定我当前所在阵列中的哪个页面,然后根据它生成PREV和NEXT链接。所以如果我从'http://domain.com/parrot/'输入,我需要链接到相关的PREV和NEXT页面。

非常感谢在下一阶段为我提供指导的任何帮助或信息。

1 个答案:

答案 0 :(得分:1)

$currentPath = explode('?', $_SERVER['REQUEST_URI']); //make sure we don't count any GET variables!
$currentPath = $currentPath[0]; //grab just the path
$projectlist = array(
        '/monkey/',
        '/tiger/',
        '/banana/',
        '/parrot/',
        '/aeroplane/',
);
if(! in_array($currentPath, $projectlist) ) {
    die('Not a valid page!'); //they didn't access a page in our master list, handle error here
}
$currentPageIndex = array_search($currentPath, $projectlist);

if($currentPageIndex == 0) { //if it's on the first page, we want them to go to the last page
    $prevlink = '<a href="'.$projectlist[ sizeof($projectlist)-1].'">Prev</a>';
} else { //otherwise just go to the n-1th page
    $prevlink = '<a href="'.$projectlist[$currentPageIndex-1].'">Prev</a>';
}


if($currentPageIndex  == sizeof($projectlist)-1 ) {     //if we're on the last page, have them go to the first page for "next"
    $nextlink = '<a href="'.$currentPageIndex[0].'">Next</a>';
} else {
    $nextlink = '<a href="'.$projectlist[$currentPageIndex+1].'">Next</a>';
}

您可能想要考虑的一件事是urlencoding链接中的href目标。